如果我有一个JavaScript对象,如:
var list = {
"you": 100,
"me": 75,
"foo": 116,
"bar": 15
};
有没有一种方法来基于值排序属性?所以我结束了
list = {
"bar": 15,
"me": 75,
"you": 100,
"foo": 116
};
我想得头都大了!!!
不想复制整个数据结构,或者在需要关联数组的地方使用数组。
这里有另一种方法来做和bonna一样的事情:
var list = {"you": 100, "me": 75, "foo": 116, "bar": 15};
keysSorted = Object.keys(list).sort(function(a,b){return list[a]-list[b]})
alert(keysSorted); // bar,me,you,foo
将它们移动到一个数组,排序该数组,然后将数组用于您的目的。
这是我通过Google找到的解决方案:
var maxSpeed = {
car: 300,
bike: 60,
motorbike: 200,
airplane: 1000,
helicopter: 400,
rocket: 8 * 60 * 60
};
var sortable = [];
for (var vehicle in maxSpeed) {
sortable.push([vehicle, maxSpeed[vehicle]]);
}
sortable.sort(function(a, b) {
return a[1] - b[1];
});
//[["bike", 60], ["motorbike", 200], ["car", 300],
//["helicopter", 400], ["airplane", 1000], ["rocket", 28800]]