2011-11-23 41 views
2

我有一個對象,像這樣什麼是通過在每個屬性中找到的索引來排序json對象的最佳方法?

obj = [ 
    { 
     id: 3, 
     data: foo 
    }, 
    { 
     id: 7, 
     data: bar 
    } 
] 

一個數組,但我需要在副對象不需要ID得到它

obj = { 
    3: { 
     id: 3, 
     data: foo 
    }, 
    7: { 
     data: bar 
    } 
} 

,但可能是得心應手。什麼是實現這一目標的最佳方式?我不確定是否有一種簡單的方法來提取屬性作爲索引?

感謝您的幫助!

回答

2
obj2 = {}; 
obj.forEach(function(x){ 
    obj2[x.id] = x; 
}); 
+0

甜,我剛回來寫些類似的東西。 – dibs

0

任何時候在使用對象操作時,都應該考慮使用Underscore JavaScript library。它確實使它們更容易處理,並將爲您處理瀏覽器不兼容問題。具體來說,我會使用map功能:

var newObj = _.map(obj, function (subobj) { 
    var tempObj = {}; 
    tempObj[subobj.id] = subobj; 
    return tempObj; 
}); 
相關問題