不建议对对象进行排序。应该将其视为查找。您应该将键值对转换为入口元组,并对索引1处的值(也称为值数组(进行排序。
我正在尝试按值对映射进行排序,其中值是数组。
例如下面的地图:
{'let1': ['art', 'can'], 'let2': ['own', 'kit', 'dig'], 'let3': ['art', 'zero']}
我想把它分类为:
{'let1': ['art', 'can'], 'let3': ['art', 'zero'], 'let2': ['own', 'kit', 'dig']}
是否可以使用JavaScriptsort()
方法?
请参阅:按值排序对象属性
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" ] ]
]