我正在尝试对对象进行排序,但似乎无法在排序后保留每个对象的键名称。
这是我正在排序的示例 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/