我有一个需要按值排序的大型对象,因此按降序排列(范围为7-2
)。目前,我不知道什么是真正处理排序顺序,这似乎是相当随机的,虽然我假设有一些逻辑。
下面是数据的一个示例子集:
property_list = {
1 : {
description : '...',
specs : {
bedroom_number: 7
}
},
2 : {
description : '...',
specs : {
bedroom_number: 3
}
},
3 : {
description : '...',
specs : {
bedroom_number: 5
}
}
}
因此,我需要按specs.bedroom_number
重新订购,以便按卧室号的值排列为7
、5
、3
。
这种分类是可能的吗?还是需要某种循环来遍历对象并将每个对象添加到新的数据集中?
发布于 2016-10-20 22:16:23
您可以在变量property_list
之外创建一个新的对象数组,然后使用Array.prototype.sort()按specs.bedroom_number
排序:
var property_list = {1: {description: '...',specs: {bedroom_number: 7}},2: {description: '...',specs: {bedroom_number: 3}},3: {description: '...',specs: {bedroom_number: 5}}},
arr = Object
.keys(property_list)
.map(function (key) {
return property_list[key];
})
.sort(function (a, b) {
return b.specs.bedroom_number - a.specs.bedroom_number;
});
console.log(arr);
https://stackoverflow.com/questions/40165259
复制相似问题