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