我有一个包含一个属性调用name
的对象数组,如下所示
var nameArr = [
{
"name":"john"
},
{
"name":"carl"
},
{
"name":"peter"
}
]
我有另一个名为ageArr
的数组,它只包含名为age
var ageArr = [
{
"age":"22"
},
{
"age":"21"
},
{
"age":"32"
}
]
我想连接这些数组,结果应该像这样结果
var result = [
{
"age":"22",
"name":"john"
},
{
"age":"21",
"name":"carl"
},
{
"age":"32",
"name":"peter"
}
]
请注意,两个数组的长度始终相等且动态。有没有办法,我可以做到这一点,而不是将这些数组相互循环。谢谢。
答案 0 :(得分: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)

答案 1 :(得分: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);

答案 2 :(得分:0)
您可以使用以下代码段。
var result = nameArr.map(function( obj, index ) {
var res = ageArr[index];
res.name = obj.name;
return res;
});
在地图中,您可以轻松使用
jQuery.extend()
创建两个相同索引对象的合并。