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

JavaScript에서 반복적인 항목을 포함하는 배열의 교차점 찾기

<시간/>

두 개의 숫자 배열을 받는 JavaScript 함수를 작성해야 합니다. 이를 arr1 및 arr2라고 합니다.

함수는 arr1과 arr2에 공통적인 모든 요소를 ​​포함하는 두 개의 입력 배열을 기반으로 세 번째 배열을 만들어야 합니다.

두 배열에 동일한 요소가 두 개 이상 있는 경우 해당 요소의 모든 인스턴스를 고려해야 합니다.

예를 들어 -

입력 배열이 -

인 경우
const arr1 = [1, 2, 2, 4, 4, 5, 6];
const arr2 = [3, 2, 4, 2, 4, 9];

그러면 출력 배열은 -

여야 합니다.
const output = [2, 2, 4, 4];

예시

다음은 코드입니다 -

const arr1 = [1, 2, 2, 4, 4, 5, 6];
const arr2 = [3, 2, 4, 2, 4, 9];
const findIntersection = (arr1 = [], arr2 = []) => {
   const map = new Map();
   for (const el of arr2) {
      const count = map.get(el) || 0;
      map.set(el, count + 1);
   };
   return arr1.filter(el => {
      let count = map.get(el);
      if (count) {
         map.set(el, --count);
         return true;
      }
      return false;
   });
};
console.log(findIntersection(arr1, arr2));

출력

다음은 콘솔 출력입니다 -

[2, 2, 4, 4]