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

JavaScript에서 두 리터럴 배열 사이에서 누락된 숫자 찾기

<시간/>

문제

두 개의 배열 arr1과 arr2를 받는 JavaScript 함수를 작성해야 합니다.

arr2는 요소가 하나만 누락된 셔플된 복제본입니다.

우리 함수는 하나의 요소를 찾아서 반환해야 합니다.

예시

다음은 코드입니다 -

const arr1 = [6, 1, 3, 6, 8, 2];
const arr2 = [3, 6, 6, 1, 2];
const findMissing = (arr1 = [], arr2 = []) => {
   const obj = {};
   for (let i = 0; i < arr1.length; i++) {
      if (obj[arr1[i]] === undefined) {
         obj[arr1[i]] = 1;
      } else {
         obj[arr1[i]]++;
      };
   }
   for (let i = 0; i < arr2.length; i++) {
      if (obj[arr2[i]] === undefined || obj[arr2[i]]-- === 0) {
         return arr2[i];
      }
   }
   for (key in obj) {
      if (obj[key] > 0) {
         return Number(key);
      }
   }
   return -1;
};
console.log(findMissing(arr1, arr2));

출력

다음은 콘솔 출력입니다 -

8