JavaScript ، كيفية البحث عن التكرارات في المصفوفة

كيفية البحث عن التكرارات وإزالتها في مصفوفة JavaScript

إذا كنت ترغب في إزالة التكرارات ، فهناك طريقة بسيطة للغاية ، وهي الاستفادة من بنية البيانات المحددة التي توفرها JavaScript. إنها سطر واحد:

const yourArrayWithoutDuplicates = [...new Set(yourArray)]

للعثور على العناصر المكررة ، يمكنك استخدام هذه "المصفوفة بدون نسخ مكررة" التي حصلنا عليها ، وإزالة كل عنصر يحتوي عليه من محتوى المصفوفة الأصلي:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

const yourArrayWithoutDuplicates = […new Set(yourArray)]

let duplicates = […yourArray] yourArrayWithoutDuplicates.forEach((item) => { const i = duplicates.indexOf(item) duplicates = duplicates .slice(0, i) .concat(duplicates.slice(i + 1, duplicates.length)) })

console.log(duplicates) //[ 1, 5 ]

حل آخر هو فرز المصفوفة ، ثم التحقق مما إذا كان "العنصر التالي" هو نفسه العنصر الحالي ، ووضعه في مصفوفة:

const yourArray = [1, 1, 2, 3, 4, 5, 5]

let duplicates = []

const tempArray = […yourArray].sort()

for (let i = 0; i < tempArray.length; i++) { if (tempArray[i + 1] === tempArray[i]) { duplicates.push(tempArray[i]) } }

console.log(duplicates) //[ 1, 5 ]

لاحظ أن هذا يعمل فقط مع القيم الأولية ، وليس الكائنات. في حالة الأشياء ، تحتاج إلى طريقة لمقارنتها.


المزيد من دروس js: