2013-10-15 72 views
1

我有一個數組的對象說如何將數組的對象變成對象數組?

obj_of_arr = {a : [1,2], b:["foo","bar"]} 

,我希望把它變成對象

arr_of_obj = [{a:1,b:"foo"},{a:2,b:"bar"}] 

什麼是最優雅的方式來實現這一目標相當於陣列?我可以「蠻力」這一點,但我想知道是否有一種優雅的方式。如果涉及jQuery,那很好。

回答

1

爲什麼不只是用兩個循環做?

備註:如果這是您所說的「暴力」方式,那麼我不知道該如何幫助您。即使有一些jQuery(或其他框架)函數這樣做,它可能會在內部使用類似的構造,因爲這些框架通常沒有任何讓它們更快或更高效的魔力。

Preview (JSBin)

function obj_to_arr(obj_of_arr) { 
    var objects = []; 

    for (var prop in obj_of_arr) { 
     for (var i = 0; i < obj_of_arr[prop].length; i++) { 
      if (typeof(objects[i]) != "object") { 
       objects[i] = {}; 
      } 
      objects[i][prop] = obj_of_arr[prop][i]; 
     } 
    } 

    return objects; 
}