我有一个大型对象需要按值排序,因此按降序列出(范围为Array (
[0] => Array (
[uid] => 1
[name] => John Doe
[location] => Main Office
[photo_id] => State
[timestamp] => 1473365714
)
[1] => Array (
[uid] => 2
[name] => Joe Blow
[location] => New Office
[photo_id] => Passport
[timestamp] => 1473365738
)
)
)。目前,我不确定什么是真正处理排序顺序,虽然我认为有一些逻辑,但对我来说似乎相当随机。
以下是数据的示例子集:
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
。
这种分类是否可行?或者是否需要某种循环来处理对象并将每个对象添加到一组新数据中?
答案 0 :(得分:2)
您可以在变量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);