Javascript 映射两个对象数组

标签 javascript

我有两个数组:

const people = [{id:1, name:"John"}, {id:2, name:"Alice"}];
const address = [{id:1, peopleId: 1, address: "Some street 1"}, {id:2, peopleId: 2, address: "Some street 2"}]

如何过滤这两个数组并得到这样的一个:

const fullData = [{id: 1, name: "John", address: "Some street 1"}, {id: 2, name: "Alice", address: "Some street 2"}]

最佳答案

你可以试试这个。

借助map()find()

const people = [{id:1, name:"John"}, {id:2, name:"Alice"}];
const address = [{id:1, peopleId: 1, address: 'Some street 1'}, {id:2, peopleId: 2, address: 'Some street 2'}]

let op = people.map((e,i)=>{
  let temp = address.find(element=> element.id === e.id)
  if(temp.address) {
    e.address = temp.address;
  }
  return e;
})
console.log(op);

关于Javascript 映射两个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53647473/

相关文章:

javascript - 作为参数传递的 Sinon 匿名 stub

javascript - jQuery 可拖动 "game"问题

javascript - 了解带有 Promise、Generator 和 Async/Await 的异步控制流

javascript - 如何从html元素获取数组索引?

javascript - 谷歌脚本: Comparison of cells with === always gives out cells are different

javascript - 在元素列表中搜索给定字符串

javascript - 使用 react 更新时出错

javascript - 追加到更改功能

javascript - 侧边栏导航不显示

javascript - Highcharts - 如何绘制置信区间