javascript - 使用值对对象属性进行排序

标签 javascript jquery

我有一个像这样的对象:

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/

相关文章:

javascript - 在 URL 中显示两个单独的选择框值

php - 没有 jQuery 的 document.this.style.display

javascript - CoffeeScript 仅在 Rails 应用程序中重新加载页面后才有效

javascript - JavaScript 中的字符串到字符串数组

javascript - 如何在 Django View 执行时停止它?

javascript - 插入dom时UTF-8符号被转换

jQuery 为什么 $ ('tr' ).slideDown ('slow' );打破表格布局?

javascript - 检测 jQuery MMenu 是否打开/事件?

javascript - npm 开销 - 如何处理?

javascript - HTML5 图像拖动事件 - ctrlKey 在 Firefox 29 中仍然为 false