我正在尝试对对象进行排序,但在排序后似乎无法保留每个对象的键名。
以下是我正在排序的样本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?
答案 0 :(得分:2)
我通过在key
内的每个object
上设置_.sortBy()
属性来实现这一目标 - 不理想但只有一个解决方案
_.sortBy(object, function(item, key) {
item.key = key;
return item.sortattribute;
});
答案 1 :(得分:1)
我认为只要调用_.sortBy()就可以做到这一点。
但是,您可以分两步完成:
以下是JSBIN
的示例潜在的问题是对象是无序的属性集合。