2014-05-13 34 views
0

創建平分類對象我有一個數組:使用Javascript - 從對象

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]}); 


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:

http://jsfiddle.net/Tj39A/

+3

對不起,'maxSpeed'不是_Array_,而是_Object_ –

+2

對象內部使用散列算法來存儲密鑰。所以我們不能明確地命令它們。 – thefourtheye

+0

@PaulS。這是'PHP' devs在JavaScript中的一個常見錯誤' – baldrs

回答

0

你要找的是一樣的東西這個:

rv[sortable[i][0]] = sortable[i][1]; 

然而,正如它已經指出,一個對象不能按你想要的方式排序。