一個 JavaScript 函式,它接收一個多維陣列和一個一維陣列作為引數,並查詢一維陣列在多維陣列中的匹配項。
我們需要編寫一個 JavaScript 函式,該函式接收一個數字陣列的陣列作為第一個引數,並接收一個數字陣列作為第二個引數。該函式應該從第一個陣列的每個陣列中選擇一個子陣列(包含第二個陣列和第一個陣列相應陣列的公共項的子陣列)。
例如 -
如果輸入為 -
示例
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 ] ]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP