如何在javascript上向数组的对象添加新元素

How to add new elements to the object of an array on javascript

本文关键字:新元素 添加 元素 对象 javascript 数组      更新时间:2023-09-26

我有一个var arr = [{name:"Joe"}, {name:"Mark"}];我有像var ageArr = [{age: 24}, {age: 30}] 这样的年龄数组

我需要用程序添加对象的相应年龄

我的阵列需要看起来像var arr = [{name:"Joe", age: 24}, {name:"Mark", age: 30}];

我使用的是javascript,并包含了undercore.js.库

有没有更清洁的方法来实现这一点。有人能帮我写一段代码吗。

您可以

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/

您可以使用简单的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 Code Snippet

最直接的方法:

// 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);