Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

isSubset ของสองอาร์เรย์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวอักษรสองอาร์เรย์ ฟังก์ชันควรกำหนดว่าอาร์เรย์ที่สองเป็นสับเซตของอาร์เรย์แรกหรือไม่ โดยคำนึงถึงสิ่งเหล่านี้ −

  • ค่าทั้งหมดของ array1 ควรถูกกำหนดใน array2

  • หากมีค่าที่ซ้ำกันใน array1 ก็ควรนำมาพิจารณาใน array2 ด้วย

ตัวอย่างเช่น ถ้า arr1 =["a", "a"] และ arr2 =["b", "a"] ดังนั้น isSubset จะเป็นเท็จเพราะ "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"]));
console.log(isSubset(["B", "A", "C", "A"], ["A", "B", "C", "D"]));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

true
false