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

// 把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:'你好呀呀'}

]


回答:

对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

}

以上是 【求助】数组中的对象的属性,替换为另一个数组中的值该怎么做? 的全部内容, 来源链接: utcz.com/p/932786.html

回到顶部