我正在尝试对一个对象进行排序,但似乎无法在排序后保留每个对象的键名.
这是我正在排序的示例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();`
当我需要将其设为objectNameA:{…},objectNameB:{…}时,它将返回0:{…},1:{…},2:{…}.
还是更好
0:{objectNameA:{…},…}, 1:{objectNameB:{…},…}
从最高到最低排序时,如何保留或添加objectName?
解决方法:
我认为您无法通过一次调用_.sortBy()来完成此操作.
但是,您可以分两步完成此操作:
>调用_.sortBy()并将每个对象的键分配为属性
>在已排序的数组上调用_.each()以获取所需的对象结构
这是一个示例JSBIN
潜在的问题是对象是属性的无序集合.