我有一个大对象,需要按值排序,因此该对象以降序排列(范围为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
。这种排序可能吗?还是需要某种循环来遍历对象并将每个对象添加到一组新数据中?
最佳答案
您可以使用变量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);