2015-04-06 204 views
1

我有一個var arr = [{name:"Joe"}, {name:"Mark"}]; 我有年齡陣列狀var ageArr = [{age: 24}, {age: 30}]如何將新的元素添加到數組對象的JavaScript

我需要以編程方式添加的對象

我的陣列需要的各個年齡看起來像var arr = [{name:"Joe", age: 24}, {name:"Mark", age: 30}];

我正在使用javascript,幷包括庫underscore.js。

有沒有一種更清潔的方式來實現這一點。有人可以幫助一個代碼片段。

回答

2

可以

var newArr = arr.map(function(v, i) { 
    return _.extend(v, ageArr[i]); 
}); 

如果你不喜歡使用索引自由變量ageArr和訪問 - 你可以先zip他們:

var newArr = _.zip(arr, ageArr).map(function(v) { 
    return _.extend(v[0], v[1]); 
}); 

的jsfiddle:http://jsfiddle.net/wrq2Lo8m/

1

你可以使用簡單的Javascript代碼來實現這一點。

var arr = [{name:"Joe"}, {name:"Mark"}]; 
 
var ageArr = [{age: 24}, {age: 30}] 
 

 

 
var newArr = [] 
 

 

 
for(var i =0 ; i < arr.length ; i++) 
 
{ 
 
    var newObj = new Object(); 
 
    newObj.name = arr[i].name; 
 
    newObj.age = ageArr[i].age; 
 
    
 
    newArr.push(newObj) 
 
} 
 

 
alert(JSON.stringify(newArr))

點擊運行代碼片段

0

的最直接方式:

// make sure names and ages are same length 
function mapNameWithAge(names, ages) { 
    var len = names.length, 
    ans = []; 
    for(var i=0;i<len;i++) { 
    var obj = { 
     "name": names[i].name, 
     "age": ages[i].age 
    } 
    ans.push(obj); 
    } 
    return JSON.stringify(ans) 
} 

var arr = [{name:"Joe"}, {name:"Mark"}], 
    ageArr = [{age: 24}, {age: 30}]; 
var result = mapNameWithAge(arr, ageArr); 
console.log(result); 
相關問題