สมมติว่า เรามีอาร์เรย์ของตัวอักษรสองอาร์เรย์ที่มีจำนวนองค์ประกอบเท่ากัน เราควรเขียนฟังก์ชันที่ตรวจสอบว่าอาร์เรย์ทั้งสองมีองค์ประกอบเดียวกันปรากฏขึ้นในจำนวนครั้งที่เท่ากันหรือไม่
หากอาร์เรย์เป็นไปตามเงื่อนไขนี้ เราจะคืนค่า จริง เท็จ มิฉะนั้น
เราจะสร้างสำเนาของอาร์เรย์ที่สอง และเริ่มการวนซ้ำในอาร์เรย์แรก ขณะที่เราทำซ้ำ เราจะทำการลบองค์ประกอบออกจากอาร์เรย์ที่สองที่มีอยู่ในอาร์เรย์แรก หากในระหว่างการวนซ้ำเราพบองค์ประกอบใด ๆ ที่ไม่มีอยู่ในอาร์เรย์ที่สอง เราจะคืนค่าเท็จ มิฉะนั้น เมื่อสิ้นสุดการวนซ้ำ เราจะคืนค่าเป็น จริง
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr1 = [2, 5, 7, 4, 3, 3]; const arr2 = [3, 5, 7, 2, 3, 4]; const compareWithCount = (arr1, arr2) => { if(arr1.length !== arr2.length){ return false; }; const copy2 = arr2.slice(); const areEqual = arr1.every(el => { if(!copy2.includes(el)){ return false; }; copy2.splice(copy2.indexOf(el), 1); return true; }); return areEqual; }; console.log(compareWithCount(arr1, arr2));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true