【求助】数组中的对象的属性,替换为另一个数组中的值该怎么做?

// 把arr1中每一个对象的a的值,替换成arr2中对应的value值该怎么做???

let arr1 = [
            {
                a:'aaa',
                b:'bbb',
                c:'ccc',
            },
            {
                a:'aaa222',
                b:'bbb222',
                c:'ccc222',
            },
            {
                a:'aaa333',
                b:'bbb333',
                c:'ccc333',
            }
        ]

        let arr2 = [
            {label:'aaa',value:'你好'},
            {label:'aaa222',value:'你好呀'},
            {label:'aaa333',value:'你好呀呀'}
        ]
阅读 2.5k
2 个回答
✓ 已被采纳

对arr1进行迭代,并在其中找出匹配到的项,将值赋予就好了:

for (let item of arr1) {
  let matched = arr2.find(element => element.label === item.a)
  item.a = matched.value
}

用一个map来存arr2的映射关系,然后遍历arr1的每一项进行匹配。

function handleData(arr1, arr2) {
  let map = new Map()
  let result = []
  arr2.forEach(item => {
    map.set(item.label, item.value)
  })
  result = arr1.map(item => {
    let obj = {}
    Object.entries(item).forEach(x => {
      obj[x[0]] = map.get(x[1]) || x[1]
    })
    return obj
  })
  return result
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题