按对象的值排序,并获取密钥作为JavaScript中的输出

时间:2014-06-07 10:22:11

标签: javascript

说我有一个像这样的对象:

{A:5, B:3, C:-7, D:0}

我想以asec / desc顺序获取其键的数组,如:

['C','D','B','A']

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用Array.prototype.sort对键进行简单排序,并使用相应键的值之间的差异,例如

console.log(Object.keys(data).sort(function(a, b) {
    return data[a] - data[b];
}));
# [ 'C', 'D', 'B', 'A' ]

要按相反的顺序排序,只需找到ba的值之间的差异,就像这样

console.log(Object.keys(data).sort(function(a, b) {
    return data[b] - data[a];
}));
# [ 'A', 'B', 'D', 'C' ]

答案 1 :(得分:1)

使用Object.keys(obj)提供一个数组,然后您可以使用您喜欢的任何顺序对键进行排序。