js 比较两个数组,并进行替换掉?
let arr = [
{
sk: [
{ Name: '数据1', Value: '200' },
{ Name: '数据2', Value: '300' },
{ Name: '数据3', Value: '400' },
],
},
{
sk: [
{ Name: '数据5', Value: '500' },
{ Name: '数据6', Value: '600' },
{ Name: '数据7', Value: '700' },
],
},
];
let arr2 = {
name: '数据555',
val: [200, 300, 500],
};
需要根据arr2对象里面的val数组里面的值[200, 300, 500]去匹配arr1数组下sk数组里面的Value的值,如果arr1数组下sk数组里面的Value的值和arr2对象里面的val数组里面的值相等就替换Name,把arr2 对象的name 赋值到sk数组里面的Name
期望得到
let arr = [
{
sk: [
{ Name: '数据555', Value: '200' },
{ Name: '数据555', Value: '300' },
{ Name: '数据3', Value: '400' },
],
},
{
sk: [
{ Name: '数据555', Value: '200' },
{ Name: '数据555', Value: '500' },
{ Name: '数据7', Value: '700' },
],
},
];
let result = arr.map((item) => {
if (item.sk.length == 0) return;
item.sk.forEach((k) => {
return {
Name: arr2.val.find((t) => t == k.Value)?.name,
};
});
return item;
});
这样写了调试了还没效果。麻烦大佬们帮我看看