我有一个像这样的对象:
json_result = {X: 0.42498, A: 0.34891, B: 0.38408, C: 0.22523}
我想按值的降序对以上内容进行排序,即,
json_result = {X: 0.42498, B: 0.38408, A: 0.34891, C: 0.22523}
我在想这样的事情:
for ( key in json_result)
{
for ( value1 in json_result[key])
{
for (value2 in json_result[key])
{
}
}
}
还有其他办法吗?
最佳答案
正如评论中提到的,不能保证对象键顺序,因此对对象进行排序没有多大意义。您应该使用数组作为结果。
var json_result = {X: 0.42498, A: 0.34891, B: 0.38408, C: 0.22523};
function sort(obj) {
return Object.keys(obj).sort(function(a, b) {
return obj[b] - obj[a];
});
}
var sorted = sort(json_result);
console.log('sorted keys', sorted);
console.log('key lookup', sorted.map(function(key) {
return json_result[key]
}));
console.log('sorted objects', sorted.map(function(key) {
return {[key]: json_result[key]}
}));
关于javascript - 使用值对对象属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656711/