js两个数组A与B的某个值相等后,取出他们的值组成新的数组?

现在有两个数组A与B,A的id如果和B的cid相同的话,我想取出A的id和B的其他字段组成新的数组
数组如图:
数组A与B
新数组如图:
新数组

求大佬改怎么写?

阅读 2.1k
2 个回答

zangeci说的,不要只贴图,不方便回答的人调试。

let a = [{id:1},{id:2}];
let b = [{cid:1, des:"1"},{cid:1, des:"11"},{cid:2, des:"2"}];
let c = a.map(item=>{
    return {
        ...item,
        list: b.filter(it=>it['cid'] === item['id'])
    }
})
const newObj = a.filter(item=>{
  const list = b.filter(it => {
    it.title = 'title的内容'
    it.txt = 'txt的内容'
    return it.cid === item.id
  })
  item.list = list
  return list.length
})

这样操作原始的数组a和数组b也会改变,如果不想改变,就把数组a和数组b深拷贝下来在做处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏