Computer >> Máy Tính >  >> Lập trình >> Javascript

isSubset của hai mảng trong JavaScript


Chúng tôi bắt buộc phải viết một hàm JavaScript có hai mảng ký tự. Hàm sẽ xác định xem mảng thứ hai có phải là một tập hợp con của mảng đầu tiên hay không, hãy ghi nhớ những điều này -

  • Tất cả các giá trị của array1 phải được xác định trong array2

  • Nếu các giá trị trùng lặp tồn tại trong mảng 1, chúng cũng nên được tính đến trong mảng 2.

Ví dụ:nếu arr1 =["a", "a"] và arr2 =["b", "a"] thì isSubset là false vì "a" xuất hiện hai lần trong lần đầu tiên nhưng chỉ một lần trong lần thứ hai.

Ví dụ

Mã cho điều này sẽ là -

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"]));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true
false