Javascript 使用两个JS对象数组的对象属性值

Javascript 使用两个JS对象数组的对象属性值,javascript,arrays,Javascript,Arrays,我有两个数组 let arr1 = [{'id': 'ee', 'seat': '12'}, {'id': 'aa', 'seat': '8'} ] let arr2 = [ {'id': 's22', 'num': ''}, {'id': '2s2', 'num': ''} ] 我想将座位值从arr1复制到arr2的num属性,但我只得到for循环中的最后一个arr1座位值 for( let i = 0; i <= arr1.length; i++) { for(

我有两个数组

let arr1 = [{'id': 'ee', 'seat': '12'}, 
  {'id': 'aa', 'seat': '8'}
]
let arr2 = [
  {'id': 's22', 'num': ''}, 
  {'id': '2s2', 'num': ''}
]
我想将座位值从arr1复制到arr2的num属性,但我只得到for循环中的最后一个arr1座位值

for( let i = 0; i <= arr1.length; i++) {
  for( let x = 0; x <= arr2.length; x++) {
    arr2[x]['num'] = arr1[i]['seat'];
  }
}

console.log(arr2);
for(let i = 0; i < arr1.length; i++) {
    arr2[i].num = arr1[i].seat;
}

for(让i=0;i使用
Array.forEach()
迭代
arr2
,并从
arr1
中按索引获取相应的
seat
值:

const arr1=[{'id':'ee','seat':'12'},{'id':'aa','seat':'8'}]
常量arr2=[{'id':'s22','num':''},{'id':'2s2','num':''}]
arr2.forEach((o,i)=>o.num=arr1[i].座位)

console.log(arr2)
您只需要一个循环,并检查数组的索引if(仅)是否小于两个数组的最小长度

如果索引获取数组的长度,访问将返回未定义的
,因为该元素不在数组中

进一步访问此属性会引发错误:

var arr1=[{id:'ee',seat:'12'},{id:'aa',seat:'8'}],
arr2=[{id:'s22',num:'},{id:'2s2',num:''}],
i、 l;
对于(i=0,l=Math.min(arr1.length,arr2.length);ilog(arr2);
假设您想要匹配索引,这应该可以做到

const arr1=[
{'id':'ee','seat':'12'},
{'id':'aa','seat':'8'}
]
常数arr2=[
{'id':'s22','num':''},
{'id':'2s2','num':''''
]
const result=arr2.map((e,i)=>({…e,{num:arr1[i].seat}))

log(result)
您可以在一个for循环中完成

for( let i = 0; i <= arr1.length; i++) {
  for( let x = 0; x <= arr2.length; x++) {
    arr2[x]['num'] = arr1[i]['seat'];
  }
}

console.log(arr2);
for(let i = 0; i < arr1.length; i++) {
    arr2[i].num = arr1[i].seat;
}
for(设i=0;i

希望这有帮助!

您不应该使用嵌套循环,目前您首先将第二个数组的每个num设置为第一个数组的第一个位置,然后继续将第二个数组的每个num设置为第一个数组的第二个位置。您没有描述第一个数组和第二个数组元素之间的关联应该是什么是的,所以目前无法为您提供具体的答案。