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

JavaScript에서 두 배열의 isSubset


우리는 두 개의 리터럴 배열을 취하는 JavaScript 함수를 작성해야 합니다. 함수는 다음 사항을 염두에 두고 두 번째 배열이 첫 번째 배열의 하위 집합인지 여부를 결정해야 합니다. −

  • array1의 모든 값은 array2에 정의되어야 합니다.

  • array1에 중복 값이 ​​있으면 array2에도 고려해야 합니다.

예를 들어, arr1 =["a", "a"] 및 arr2 =["b", "a"]이면 "a"가 첫 번째에는 두 번 나타나지만 두 번째에는 한 번만 나타나기 때문에 isSubset은 false입니다.

예시

이에 대한 코드는 -

const isSubset = (arr1, arr2) => {
   const count = (arr, ind) => {
      let i = arr.length;
      while (i−−) hash[arr[i]] = (hash[arr[i]] || 0) + ind;
   }
   const hash = {};
   let i, keys;
   count(arr1, 1);
   count(arr2, −1);
   keys = Object.keys(hash);
   i = keys.length;
   while (i−−) {
      if (hash[keys[i]]){
         return false;
      };
   };
   return true;
}
console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "A"]));
console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "D"]));

출력

콘솔의 출력은 -

true
false