我有一个数组:
var maxSpeed = {car:300, bike:60, motorbike:200, airplane:1000, helicopter:400, rocket:8*60*60}
我想对它进行排序并转换为FLAT对象,它看起来与上面的数组完全相同。不幸的是,在排序和创建对象后,我得到了多维对象:
var sortable = [];
for (var vehicle in maxSpeed)
sortable.push([vehicle, maxSpeed[vehicle]])
sortable.sort(function(a, b) {return a[1] - b[1]});
function toObject(sortable) {
var rv = {};
for (var i = 0; i < sortable.length; ++i)
rv[i] = sortable[i];
return rv;
}
检查console.logs,一个嵌套,另一个不嵌套。我想我必须修改rv [i] = sortable [i]行,但我不知道怎么做?
这就是我现在得到的:
Object
0: Array[2]
1: Array[2]
2: Array[2]
3: Array[2]
4: Array[2]
5: Array[2]
__proto__: Object
我想得到的是什么:
Object
airplane: 1000
bike: 60
car: 300
helicopter: 400
motorbike: 200
rocket: 28800
__proto__: Object
的jsfiddle:
答案 0 :(得分:0)
您正在寻找的是这样的:
rv[sortable[i][0]] = sortable[i][1];
然而,正如已经指出的那样,物体不能按照你想要的方式分类。