javascript - sortBy 保留键名

标签 javascript sorting object underscore.js

我正在尝试对对象进行排序,但似乎无法在排序后保留每个对象的键名称。

这是我正在排序的示例 json

series_data: {
embeded: {
    objectNameA: {
        item: {
        last:{reportdate:2014-10-05, trend:=, change:0, value:0},…},
        first: {reportdate:2013-01-06, trend:?, change:null, value:0},
        high: 1,
        low: 0,
        median: 0.043478260869565216,
        series: [{reportdate:2013-01-06, trend:?, change:null, value:0},…]
    },
    objectNameB: {…}

我需要 objectName,因为它在我的模板中用于描述其他所有内容。

这是我对数据进行排序的方式

var items = _.sortBy(series_data.embeded, function(series, index) {
    return series.cd.last.value
}).reverse();`

这会返回 0:{...}, 1:{...}, 2:{...},当我需要它是 objectNameA:{...},objectNameB:{...}

或者更好

0:{objectNameA:{…},…}, 1:{objectNameB:{…},…}

如何在从高到低排序时保留或添加 objectName?

最佳答案

我不认为您可以通过一次调用 _.sortBy() 来完成此操作。

不过,您可以分两步完成:

  1. 调用 _.sortBy() 并将每个对象的键分配为属性
  2. 在排序后的数组上调用 _.each() 以获得所需的对象结构

这是一个例子 JSBIN

潜在的问题是对象是无序的属性集合。

关于javascript - sortBy 保留键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115300/

相关文章:

c++ - 从文本文件C++填充对象

javascript - grunt 问题 - 警告 : Task "ngAnnotate:dist" failed. 使用 --force 继续

Javascript "bump"识别(移动设备)

javascript - 检查 localStorage 是否可用

arrays - 如何判断两个乱序的长字符串数组是否完全相等?

javascript - 哈希表与 JavaScript 中的对象

javascript - 操作由 AJAX 填充的下拉菜单

c++ - 检测循环依赖的依赖排序

python - 使用 zip() 对元组列表进行排序时,有时不支持“<”

java - 如何通过减少 "if"语句的数量来改进这个简单的代码?