Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

다차원 및 단일 배열을 사용하고 다중 D 배열에서 단일 배열의 일치 항목을 찾는 JavaScript 함수

<시간/>

Numbers 배열의 배열을 첫 번째 인수로, Numbers 배열을 두 번째 인수로 취하는 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 ]
]