Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การตรวจสอบว่า array2 เป็น subset ของ array1 ใน JavaScript (พิจารณาค่าซ้ำ)

เราต้องเขียนฟังก์ชันตรวจสอบว่า array2 เป็น subset ของ array1 โดยพิจารณาความถี่ของค่าซ้ำด้วย (ถ้า array1 มี 'a' สองครั้ง array2 ต้องมี 'a' อย่างน้อยสองครั้ง)

ตัวอย่างโค้ด

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"])); // true
console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "D"])); // false

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

true false