二维数组按值的并集



下午好。我是新来的,只是在学习。请帮我解决数组合并的问题。我有2个阵列

let arr1 = [['boss',, 'boss I.V.', '5552654','card 100'],
['ard',, 'ard J.B.', '3722654','card 520'],
['Jon',, 'Jon sviss', '394554','card 22120'],
['Elty B',, 'Elty Bitry B.', '12265664', 'card 9990'],
['Elty B.I',, 'Elty Bitry I.','3322654', 'card 002200']];
let arr2 = [['boss', 3000, 'comm1'],
['Elty B', 8000.500, 'comm2']];
//-------------------------------------------- 
//I need to get:
let arrR = [[1,'boss I.V.', '5552654', 'card 100', 3000, 'comm1'],
[2,'Elty Bitry B.', '12265664', 'card 9990', 8000.500, 'comm2']];
//--------------------------------------------
// i made it a loop 'for':
arr1 = arr1.filter( (item) => arr2.find((el) => el[0] === item[0])).sort();
for (var i = 0; i<arr1.length; i++) {                    
arr1[i].push(arr2[i][1],arr2[i][2]);
arr1[i].splice(0,1);
arr1[i][0] = i+1;
}
return arr1;
//--------------------------------------------
//it is not right (((

如何通过按值查找来正确地执行:;如果(arr1[i][0]==arr2[k][0](";并且不使用循环?

const arrR = arr2.map((e, i) => {
const m = arr1.find(item => item[0] === e[0]);
return [i + 1, ...m.splice(2), ...e.splice(1)];
});

由于得到的数组具有与arr2相同数量的条目,我在arr2上调用map。

您必须在arr1语句中添加逗号,在arr2语句末尾添加括号,并删除sort((函数。

最新更新