按值对map进行排序,其中map是JavaScript中的一个数组



我正在尝试按值对映射进行排序,其中值是数组。

例如下面的地图:

{'let1': ['art', 'can'], 'let2': ['own', 'kit', 'dig'], 'let3': ['art', 'zero']}

我想把它分类为:

{'let1': ['art', 'can'], 'let3': ['art', 'zero'], 'let2': ['own', 'kit', 'dig']}

是否可以使用JavaScriptsort()方法?

不建议对对象进行排序。应该将其视为查找。您应该将键值对转换为入口元组,并对索引1处的值(也称为值数组(进行排序。

请参阅:按值排序对象属性

let obj = {
'let1': ['art', 'can'],
'let2': ['own', 'kit', 'dig'],
'let3': ['art', 'zero']
};
console.log(Object.entries(obj).sort((a, b) =>
a[1].join(',').localeCompare(b[1].join(','))));
.as-console-wrapper { top: 0; max-height: 100% !important; }

结果

[
[ "let1", [ "art", "can"        ] ],
[ "let3", [ "art", "zero"       ] ],
[ "let2", [ "own", "kit", "dig" ] ]
]

最新更新