js 比较两个数组,并进行替换掉?-灵析社区

sssssjkl

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; }); 这样写了调试了还没效果。麻烦大佬们帮我看看

阅读量:13

点赞量:0

问AI
let result = arr.map((item) => { if (item.sk.length === 0) return; item.sk.forEach((k) => { if (arr2.val.includes(Number(k.Value))) { k.Name = arr2.name } }); return item; }); "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241015/887cd8c3a05c082a661559e2baac0c84.png)