说我有一个像这样的对象:
{A:5, B:3, C:-7, D:0}
我想以asec / desc顺序获取其键的数组,如:
['C','D','B','A']
实现这一目标的最佳方法是什么?
答案 0 :(得分:4)
您可以使用Array.prototype.sort
对键进行简单排序,并使用相应键的值之间的差异,例如
console.log(Object.keys(data).sort(function(a, b) {
return data[a] - data[b];
}));
# [ 'C', 'D', 'B', 'A' ]
要按相反的顺序排序,只需找到b
和a
的值之间的差异,就像这样
console.log(Object.keys(data).sort(function(a, b) {
return data[b] - data[a];
}));
# [ 'A', 'B', 'D', 'C' ]
答案 1 :(得分:1)
使用Object.keys(obj)
提供一个数组,然后您可以使用您喜欢的任何顺序对键进行排序。