2015-04-06 3 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))

Нажмите на Run Код сниппета

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); 
Смежные вопросы