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

การเปรียบเทียบองค์ประกอบอาร์เรย์ที่คำนึงถึงใน JavaScript


สมมติว่า เรามีอาร์เรย์ของตัวอักษรสองอาร์เรย์ที่มีจำนวนองค์ประกอบเท่ากัน เราควรเขียนฟังก์ชันที่ตรวจสอบว่าอาร์เรย์ทั้งสองมีองค์ประกอบเดียวกันปรากฏขึ้นในจำนวนครั้งที่เท่ากันหรือไม่

หากอาร์เรย์เป็นไปตามเงื่อนไขนี้ เราจะคืนค่า จริง เท็จ มิฉะนั้น

เราจะสร้างสำเนาของอาร์เรย์ที่สอง และเริ่มการวนซ้ำในอาร์เรย์แรก ขณะที่เราทำซ้ำ เราจะทำการลบองค์ประกอบออกจากอาร์เรย์ที่สองที่มีอยู่ในอาร์เรย์แรก หากในระหว่างการวนซ้ำเราพบองค์ประกอบใด ๆ ที่ไม่มีอยู่ในอาร์เรย์ที่สอง เราจะคืนค่าเท็จ มิฉะนั้น เมื่อสิ้นสุดการวนซ้ำ เราจะคืนค่าเป็น จริง

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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