繁体   English   中英

按对象的值对对象进行排序,并获取键作为JavaScript中的输出

[英]Sort Object by its value and get key as the output in JavaScript

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

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

我想按asec / desc顺序获取其键的数组:

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

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

您可以使用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' ]

使用Object.keys(obj)给出一个数组,然后您可以按照自己喜欢的顺序对键进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM