Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Kiểm tra mảng con (isSubset) của hai mảng trong JavaScript


Chúng ta cần viết một hàm JavaScript nhận vào hai mảng các giá trị. Hàm nên xác định xem mảng thứ hai có phải là tập con của mảng thứ nhất hay không, với các lưu ý:

  • Tất cả giá trị của mảng 1 nên được định nghĩa trong mảng 2
  • Nếu 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 mảng đầu tiên nhưng chỉ một lần trong mảng thứ hai.

Ví dụ

Code cho việc 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"]));

Kết quả

Kết quả hiển thị trong console sẽ là:

true false