js 两个数组匹配相同的数据处理?

作者站长头像
站长
· 阅读数 24
    let arr = [
      { type: "name"},
      { type: "age"},
      { type: "money"},
    ]
    let arr1 = [
     {
      name: "X",
      age: "18",
      gender: 1,
      money: 100,
      sex: 1
     },
     {
      name: "XX",
      age: "20",
      gender: 1,
      money: 200,
      sex: 1
     },
    ]
期望得到:
根据arr数组里面的type的值 去取arr1数组中对应的属性里面的值、返回新的数组
麻烦各位大佬帮忙看看
    let res = [
      {
        name: "X",
        age: "18",
        money: 100
      },
      {
        name: "XX",
        age: "20",
        money: 200
      }
    ]
回复
1个回答
avatar
test
2024-08-11

源数据和 arr1 一样,肯定是 arr1.map 然后具体内容和 arr 一样,肯定是 arr.reduce 呗

arr1.map(v=>{
    return arr.reduce((s, n)=>{
        const type = n.type
        s[type] = v[type]
        return s
    },{})
})

answer image

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容