2014-05-17 196 views
0

我想創建一個包含從另一個對象的對象一個新的數組創建新的數組包含對象

這是我嘗試:

var obj = { 
    a:{}, 
    b:{} 
} 

var arr = new Array().concat(obj,[]); 

可悲的是,這是返回一個數組是這樣的:

Array[1] 
0: Object 
    a: Object 
    b: Object 

所需陣列,但是,應該是這樣的:

Array[2] 
    0: Object 
     a: Object 
    1: Object 
     b: Object 

我怎樣才能以最短的方式實現這一點,而不必循環對象?

+1

能告訴你所期望的最終結果應該是什麼樣子? – JJJ

+1

你的意思是你想'var arr = [obj.a,obj.b];'? – toniedzwiedz

+0

是的,正好@Tom – user2422960

回答

2

這裏是沒有顯式循環的例子:

var r = Object.keys(obj).map(function(key) { 
    var o = {}; 
    o[key] = this[key]; 
    return o; 
}, obj); 

http://jsfiddle.net/zNh3G/