您如何按值属性对关联数组进行排序?值本身是具有多个属性的对象,对象的一个属性是字符串。我希望能够按字母顺序按字母顺序重新排列数组。这可能吗?
我尝试在几个地方寻找答案,包括: 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"
}
答案 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"}},
]*/