JavaScript函数采用多维和单个数组,并在multi-d数组中查找单个数组的匹配项

我们需要编写一个JavaScript函数,该函数将Numbers数组的数组作为第一个参数,并将Numbers数组作为第二个参数。该函数应从第一个数组的每个数组中选择一个子数组(该子数组包含第二个数组和第一个数组的对应数组都通用的项。)

例如-

如果输入是-

示例

const arr1 = [
[1,2,5,6],
[5,13,7,8],
[9,11,13,15],
[13,14,15,16],
[1,9,11,12]
];
const arr2 = [9,11,13,15,1,2,5,6];

输出结果

控制台中的输出将是-

const output = [
[1, 2, 5, 6],
[5, 13],
[9, 11, 13, 15],
[13, 15],
[1, 9, 11]
]

第一阵列的第一子阵列和第二阵列之间的公共元素形成输出阵列的第一子阵列。

第一阵列的第二子阵列和第二阵列之间的公共元素形成输出阵列的第二子阵列。等等。

示例

const arr1 = [
[1,2,5,6],
[5,13,7,8],
[9,11,13,15],
[13,14,15,16],
[1,9,11,12]
];
const arr2 = [9,11,13,15,1,2,5,6];
const findIntersection = (arr1 = [], arr2 = []) => {
   const regex = new RegExp('\\b(' + arr1.join('|') + ')\\b', 'g');
   const res = [];    
   arr2.forEach(arr => {
      let matches = arr.join(' ').match(regex);
      if (matches.length) {          
         res.push(matches.map(Number));
      };
   });
   return res;
}
console.log(findIntersection(arr2, arr1));

输出结果

控制台中的输出将是-

[
   [ 1, 2, 5, 6 ],
   [ 5, 13 ],
   [ 9, 11, 13, 15 ],
   [ 13, 15 ],
   [ 1, 9, 11 ]
]