如何按值的属性对关联数组进行排序

时间:2016-04-02 03:11:09

标签: javascript

您如何按值属性对关联数组进行排序?值本身是具有多个属性的对象,对象的一个​​属性是字符串。我希望能够按字母顺序按字母顺序重新排列数组。这可能吗?

我尝试在几个地方寻找答案,包括: How to sort an array of associative arrays by value of a given key in PHP?

How to sort an associative array by its values in Javascript?

How to sort an (associative) array by value?

我不认为那些回答了我的问题......尤其不是我理解的方式。任何帮助,将不胜感激。 例如:

Object = {
    1: obj.prop = "C", 
    5: obj.prop = "A, 
    3: obj.prop = "B
}

我想要:

Object = {
    5: obj.prop = "A",
    3: obj.prop = "B",
    1: obj.prop = "C"
}

1 个答案:

答案 0 :(得分:0)

在Javascript中,关联数组(对象)没有订单。

这意味着将结果存储在对象中是不可能的。相反,您可以将其存储在{key,value}对象的数组中。

var obj = {
    "1":{prop:"C"},
    "5":{prop:"A"},
    "3":{prop:"B"},
}

var res = [];
for(var i in obj){
    res.push({
        key:i,
        value:obj[i]
    });
}   

res.sort(function(a,b){
    return a.value.prop > b.value.prop ? -1 : 1;
});

/*res == [
    {key:5,value:{prop:"A"}},
    {key:3,value:{prop:"B"}},
    {key:1,value:{prop:"C"}},
]*/