js 根据对象的值进行排序
数组是有序集合,而对象是无序集合,但是我们偶尔也会遇到要针对对象进行排序,下面就直接上代码了
var dict = {
"x": 1,
"y": 6,
"z": 9,
"a": 5,
"b": 7,
"c": 11,
"d": 17,
"t": 3
};
console.log('排序前的dict:', JSON.stringify(dict))
const sort_values = Object.values(dict).sort((a, b) => a - b)
// console.log(sort_values)
const sort_dict = {}
for (let i of sort_values) {
for (let key in dict) {
// console.log(i,key)
if (dict[key] === i) {
sort_dict[key] = i;
delete dict[key]
}
}
}
console.log('排序后的dict:', JSON.stringify(dict))
console.log('排序得到的:', JSON.stringify(sort_dict))
得到的结果如下图
如果想要依据对象的属性进行排序,可以利用Object.keys().sort()
,然后再遍历结果生成新的对象。
粗浅测试,有问题欢迎指正,谢谢!