通过整数值重新排序对象

时间:2016-10-20 22:03:17

标签: javascript sorting object

我有一个大型对象需要按值排序,因此按降序列出(范围为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_number75

这种分类是否可行?或者是否需要某种循环来处理对象并将每个对象添加到一组新数据中?

1 个答案:

答案 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);