2017-02-28 94 views
-2

我有一個包含一個屬性調用name這樣串連2對象陣列以一個

var nameArr = [ 
    { 
     "name":"john" 
    }, 
    { 
     "name":"carl" 
    }, 
    { 
     "name":"peter" 
    } 
] 

我有一個對象陣列的另一個數組稱爲ageArr,它僅包含屬性稱爲age

var ageArr = [ 
    { 
     "age":"22" 
    }, 
    { 
     "age":"21" 
    }, 
    { 
     "age":"32" 
    } 
] 

我要Concat的這些陣列和最終的結果應該導致這樣

var result = [ 
    { 
     "age":"22", 
     "name":"john" 
    }, 
    { 
     "age":"21", 
     "name":"carl" 
    }, 
    { 
     "age":"32", 
     "name":"peter" 
    } 
] 

注意兩個數組的長度總是相等且動態的。有沒有什麼辦法可以做到這一點,而不需要將這些數組循環到另一箇中。謝謝。

+1

'for','forEach','map',... – Tushar

+0

'變種結果= nameArr.map((姓名,指數)=> Object.assign({},姓名,ageArr [指數])); ' – Tushar

回答

2

您可以使用Object.assign()map()並返回新的數組。

var nameArr = [{"name":"john"},{"name":"carl"},{"name":"peter"}] 
 
var ageArr = [{"age":"22"},{"age":"21"},{"age":"32"}] 
 

 
var result = nameArr.map(function(e, i) { 
 
    return Object.assign({}, e, ageArr[i]) 
 
}) 
 
console.log(result)

0

forEach()功能就足夠了。

var nameArr=[{name:"john"},{name:"carl"},{name:"peter"}], 
 
    ageArr=[{age:"22"},{age:"21"},{age:"32"}]; 
 

 

 
nameArr.forEach((v,i) => v.age = ageArr[i].age) 
 
console.log(nameArr);

0

您可以使用下面的代碼片段。

var result = nameArr.map(function(obj, index) { 
    var res = ageArr[index]; 
    res.name = obj.name; 
    return res; 
}); 

在地圖上,你可以很容易地使用

jQuery.extend()

創建兩個相同的索引對象的合併。