เราจำเป็นต้องเขียนฟังก์ชัน 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