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

这是我正在排序的示例 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() 的一次调用来做到这一点。

但是,您可以分两步完成:

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

  • 这是一个例子 JSBIN

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

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

    10-12 21:43