جافا سكريبت هي واحدة من لغات البرمجة الأكثر شعبية التي تستخدم على نطاق واسع لإنشاء تطبيقات الويب. عند العمل مع المصفوفات في جافا سكريبت ، غالبا ما يكون من الضروري إزالة العناصر المكررة من المصفوفة.
في هذا الدليل ، سننظر في عدة طرق لإزالة العناصر المكررة من مصفوفة في جافا سكريبت. من أسهل الطرق استخدام طريقة المرشح (). تقوم هذه الطريقة بإنشاء مصفوفة جديدة تحتوي فقط على تلك العناصر التي ترجع لها وظيفة رد الاتصال بشكل صحيح. يمكننا استخدام طريقة إندكسوف () للتحقق مما إذا كان العنصر موجودا بالفعل في المصفوفة الجديدة. إذا لم يتم العثور على العنصر ، يتم إضافته إلى مصفوفة جديدة.
بالإضافة إلى ذلك ، سننظر في طرق بديلة ، مثل استخدام كائن تخزين وطريقة المجموعة (). تسمح لنا هاتان الطريقتان بإزالة العناصر المكررة من المصفوفة ، لكن لهما بعض الاختلافات والقيود. ونحن سوف ننظر إليها في مزيد من التفاصيل ومقارنتها مع طريقة تصفية() لتحديد الطريقة الأنسب للمشروع الخاص بك.
بغض النظر عن الطريقة التي تختارها ، تذكر أن إزالة العناصر المكررة من المصفوفة ستساعدك على تحسين الكود الخاص بك وجعله أكثر كفاءة.
- كيفية إزالة العناصر المكررة من مصفوفة في جافا سكريبت
- 1. باستخدام طريقة التصفية ()
- 2. باستخدام مجموعة
- 3. باستخدام الكائن
- لماذا يمكن تكرار العناصر في مجموعة يكون مشكلة?
- طرق التصفية والمؤشر
- طريقة المجموعة
- من أجل حلقة وإذا كان الشرط
- العودية
- طريقة الحد
- سؤال وجواب
- كيف يمكنني إزالة العناصر المكررة من مصفوفة في جافا سكريبت?
- كيف تصفية () طريقة العمل لإزالة العناصر المكررة?
- كيف يمكنني استخدام إندكسوف () طريقة لإزالة العناصر المكررة?
- هل من الممكن إزالة العناصر المكررة من صفيف دون استخدام الحلقات والأساليب?
- هل من الممكن لإزالة العناصر المكررة من مجموعة متعددة الأبعاد في جافا سكريبت?
- ما هي وظائف أو طرق مكتبة جافا سكريبت لوداش يمكن استخدامها لإزالة العناصر المكررة من صفيف?l JavaScript?
كيفية إزالة العناصر المكررة من مصفوفة في جافا سكريبت
إذا كنت بحاجة إلى إزالة العناصر المكررة من مصفوفة في جافا سكريبت ، فيمكنك استخدام عدة طرق وخوارزميات. في هذه المقالة ، سننظر في عدة طرق شائعة للقيام بذلك.
1. باستخدام عامل التصفية()
الطريقة ، تسمح لك طريقة التصفية () بإنشاء مصفوفة جديدة تحتوي فقط على تلك العناصر من المصفوفة الأصلية التي ترجع الدالة الأصلية لها. في هذه الحالة ، يمكننا استخدام هذه الطريقة للتحقق مما إذا تمت مصادفة عنصر من قبل في المصفوفة ، وترك عناصر فريدة فقط.
مجموعة كونست = [1, 2, 3, 4, 4, 5, 6, 1, 2];
كونست ونيكيراي = صفيف.تصفية ((القيمة ، الفهرس ، الذات) = > {
عودة النفس.فهرس (قيمة) = = = فهرس;
});
وحدة التحكم.سجل (فريد);
// النواتج: [1, 2, 3, 4, 5, 6]
2. باستخدام مجموعة
المجموعة هي بنية بيانات جديدة في جافا سكريبت ، وهي مجموعة مرتبة من العناصر الفريدة. يمكننا بسهولة تحويل مصفوفة إلى كائن محدد ثم العودة إلى مصفوفة لإزالة العناصر المكررة.
مجموعة كونست = [1, 2, 3, 4, 4, 5, 6, 1, 2];
كونست ونيكيراي = صفيف.من (مجموعة جديدة (صفيف));
وحدة التحكم.سجل (فريد);
// النواتج: [1, 2, 3, 4, 5, 6]
3. باستخدام الكائن
يمكننا أيضا استخدام الكائن لإزالة التكرارات من المصفوفة. في هذه الحالة ، ستكون مفاتيح الكائن هي عناصر المصفوفة ، وسنستخدمها لتتبع التكرار.
مجموعة كونست = [1, 2, 3, 4, 4, 5, 6, 1, 2];
كونست ونيكيراي = [];
كائن كونست = {};
إلى عن على (دعني = 0; أنا < صفيف.الطول ؛ أنا {) {
كائن [صفيف [أنا]] = 0;
}
ل (السماح مفتاح في الكائن) {
فريدة من نوعهاصنف.دفع (بارسينت (مفتاح));
}
وحدة التحكم.سجل (فريد);
// النواتج: [1, 2, 3, 4, 5, 6]
توفر هذه الطرق طرقا مختلفة لإزالة العناصر المكررة من مصفوفة في جافا سكريبت. يعتمد اختيار طريقة معينة على تفضيلاتك والمهمة المحددة.
لماذا يمكن تكرار العناصر في مجموعة يكون مشكلة?
يمكن أن تتسبب العناصر المكررة في المصفوفة في عدد من المشكلات والصعوبات عند العمل مع البيانات. تتم مناقشة الأسباب الرئيسية التي تجعل من المفيد تجنب العناصر المكررة في المصفوفة أدناه:
- تكرار البيانات: تزيد العناصر المكررة من مقدار الذاكرة المستخدمة ويمكن أن تبطئ معالجة البيانات. بالإضافة إلى ذلك ، فإن البيانات المكررة تعقد تحليل وفهم المعلومات.
- سلوك تعطل الخوارزمية: قد لا تعمل بعض الخوارزميات والبرامج بشكل صحيح مع المصفوفات التي تحتوي على عناصر مكررة. نتيجة لذلك ، قد تحدث أخطاء واستثناءات ونتائج غير متوقعة.
- تعقيد البحث والفرز: يمكن أن تكون معالجة المصفوفات ذات العناصر المكررة أكثر صعوبة من العمل مع عناصر فريدة. قد يتطلب البحث عن عنصر معين أو حذفه أو فرزه وقتا وموارد إضافية.
لحل هذه المشاكل ، يوصى بتجنب وجود عناصر مكررة في المصفوفة. إذا كانت هذه العناصر لا تزال موجودة ، فيجب إزالتها لضمان معالجة البيانات بكفاءة وموثوقية.
طرق التصفية والمؤشر
يمكن استخدام عدة طرق مختلفة لإزالة العناصر المكررة من مصفوفة في جافا سكريبت. واحد منهم هو استخدام مرشح ومؤشرمن الأساليب.
تسمح لك طريقة التصفية بتصفية المصفوفة ، مع ترك العناصر التي تم استيفاء الشرط لها فقط. في هذه الحالة ، سيكون الشرط هو التحقق من أن فهرس العنصر يساوي الفهرس الأول لحدوثه في المصفوفة.
تقوم طريقة الفهرس بإرجاع فهرس التكرار الأول للعنصر المحدد في المصفوفة. إذا لم يتم العثور على العنصر ، فإن الطريقة ترجع -1.
لإزالة العناصر المكررة من صفيف ، يمكنك استخدام التعليمات البرمجية التالية:
مجموعة كونست = [1, 2, 2, 3, 3, 3, 4, 5, 5];
كونست ونيكيراي = صفيف.تصفية ((عنصر ، فهرس) = > صفيف.فهرس (عنصر) = = = فهرس);
وحدة التحكم.سجل (فريد);
// الإخراج: [1, 2, 3, 4, 5]
في هذا المثال ، يحتوي متغير الصفيف على عناصر مكررة. يتم استخدام طريقة التصفية لإنشاء فريدة جديدةصفيف راي التي تتم إزالة العناصر المكررة. تقارن الحالة داخل طريقة المرشح فهرس العنصر الحالي مع فهرس حدوثه الأول في صفيف المصدر. في حالة تطابق الفهارس ، يتم تصفية العنصر ووضعه في مصفوفة جديدة.
ستكون نتيجة تنفيذ المثال كما يلي:
- 1
- 2
- 3
- 4
- 5
وبالتالي ، فإن استخدام أساليب التصفية والمؤشر يجعل من السهل إزالة العناصر المكررة من مصفوفة في جافا سكريبت.
طريقة المجموعة
جافا سكريبت يوفر لنا طريقة مجموعة مريحة لإزالة العناصر المكررة من صفيف. تقوم طريقة المجموعة بإنشاء كائن مجموعة جديد يخزن قيما فريدة لأي نوع من البيانات ، بدائية (أرقام ، سلاسل ، قيم منطقية) ومعقدة (كائنات).
لإزالة العناصر المكررة من صفيف باستخدام طريقة تعيين اتبع الخطوات التالية:
- قم بإنشاء كائن مجموعة جديد وتمرير المصفوفة الأصلية إليه;
- تحويل مجموعة إلى مجموعة باستخدام انتشار (...) المشغل;
- احصل على مصفوفة جديدة بدون عناصر مكررة.
مثال على الكود:
كونست آر = [1, 2, 3, 3, 4, 5, 5, 6];
كونست ونيكرير = [...مجموعة جديدة (آر)];
وحدة التحكم.سجل (فريدة من نوعها); // [1, 2, 3, 4, 5, 6]
في هذا المثال ، نقوم بإنشاء كائن مجموعة جديد باستخدام مشغل مجموعة جديد (آر) ، حيث آر هو الصفيف الأصلي. ثم ، وذلك باستخدام انتشار (...) المشغل ، نقوم بتحويل المجموعة إلى صفيف. نتيجة لذلك ، نحصل على مجموعة فريدة جديدة بدون عناصر مكررة.
يمكن أيضا استخدام طريقة المجموعة لإزالة العناصر المكررة من سلسلة. في هذه الحالة ، يتم تحويل السلسلة إلى صفيف من الأحرف باستخدام طريقة الانقسام ("). بعد ذلك ، نقوم بتنفيذ جميع الإجراءات نفسها كما في المصفوفة الموضحة أعلاه.
مثال على الكود:
كونست ستر = 'مرحبا';
كونست يونيكستر = [...مجموعة جديدة (شارع.انقسام ("))].انضم (");
وحدة التحكم.سجل (يونيكريستر) ؛ / / 'الحلو'
في هذا المثال ، نقوم بتحويل السلسلة "مرحبا" إلى مصفوفة من الأحرف باستخدام طريقة الانقسام (") ، ثم إنشاء كائن مجموعة جديد ، وتحويله مرة أخرى إلى مصفوفة باستخدام السبريد (...) المشغل ودمج الأحرف الناتجة مرة أخرى في سلسلة باستخدام طريقة الانضمام ("). ونتيجة لذلك ، نحصل على خط جديد من فريدستر دون أحرف مكررة.
من أجل حلقة وإذا كان الشرط
و ل حلقة و إذا الشرط هي الأدوات الرئيسية عند إزالة العناصر المكررة من صفيف في جافا سكريبت.
تسمح لك الحلقة بتنفيذ كتلة معينة من التعليمات البرمجية عدة مرات ، ويسمح لك الشرط إذا بالتحقق من حالة معينة وتنفيذ كتلة من التعليمات البرمجية فقط إذا كانت صحيحة.
عندما نريد إزالة العناصر المكررة من مصفوفة ، يمكننا استخدام حلقة للتكرار من خلال كل عنصر من عناصر المصفوفة والتحقق مما إذا كان قد تمت إضافته بالفعل إلى المصفوفة الجديدة. إذا لم تتم إضافة العنصر بعد ، فإننا نضيفه إلى المصفوفة الجديدة باستخدام شرط إف.
مثال على التعليمات البرمجية باستخدام حلقة و إذا شرط لإزالة العناصر المكررة من صفيف:
دعونا مجموعة = [1, 2, 2, 3, 4, 4, 5];
السماح فريدة من نوعهاتراي = [];
إلى عن على (دعني = 0; أنا < صفيف.الطول ؛ أنا {) {
إذا (!فريدة من نوعهاصنف.يشمل (صفيف [أنا])) {
فريدة من نوعهاصنف.دفع (صفيف [أنا]);
}
}
وحدة التحكم.سجل (فريد);
في هذا المثال ، نقوم بإنشاء مجموعة فريدة فارغة جديدة. ثم نستخدم ل حلقة لتكرار من خلال كل عنصر من عناصر مجموعة صفيف. داخل الحلقة ، نتحقق مما إذا كان أونيكيراي يحتوي بالفعل على عنصر الصفيف الحالي باستخدام شرط إف وطريقة يتضمن. إذا لم يكن العنصر بالفعل في فريدة من نوعهاالصيغة ، نضيفها إلى المصفوفة باستخدام طريقة الدفع.
بعد الانتهاء من الحلقة ، نقوم بإخراج فريدة من نوعهامصفوفة إلى وحدة التحكم للتأكد من حذف جميع العناصر المكررة.
وهكذا ، وذلك باستخدام لحلقة وحالة إذا يسمح لنا بسهولة إزالة العناصر المكررة من صفيف في جافا سكريبت.
العودية
العودية هي العملية التي تستدعي بها الوظيفة نفسها. في سياق إزالة العناصر المكررة من مصفوفة في جافا سكريبت ، يمكن أن تكون العودية مفيدة لحل هذه المشكلة.
لتطبيق العودية في هذه المهمة ، يمكنك كتابة وظيفة ستطلق على نفسها حتى يتم استيفاء شرط الإيقاف. في هذه الحالة ، سيكون شرط التوقف هو عدم وجود عناصر مكررة في المصفوفة.
قد تبدو إحدى طرق تنفيذ العودية لإزالة العناصر المكررة من مصفوفة في جافا سكريبت كما يلي:
- نحن نقبل مجموعة كوسيطة إلى وظيفة.
- إنشاء صفيف فارغ جديد يتم فيه تخزين العناصر الفريدة.
- تحقق مما إذا كان العنصر الحالي موجودا بالفعل في المصفوفة الجديدة ، ثم تخطيه وانتقل إلى العنصر التالي.
- إذا لم يكن العنصر الحالي في المصفوفة الجديدة ، فقم بإضافته إلى المصفوفة الجديدة.
- نسمي الوظيفة نفسها (مكالمة متكررة) مع شريحة من المصفوفة الأصلية ، بدءا من العنصر التالي.
- Возвращаем новый массив с уникальными элементами.
Например, следующий код реализует данную логику:
function removeDuplicates(arr) {
var uniqueArr = [];
for (var i = 0; i < arr.length; i++) {
if (uniqueArr.indexOf(arr[i]) === -1) {
uniqueArr.push(arr[i]);
}
}
return uniqueArr;
}
var arr = [1, 2, 3, 4, 4, 5, 6, 6];
var uniqueArr = removeDuplicates(arr);
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6]
بدون عناصر مكررة.
يسمح لنا استخدام العودية في هذه الحالة بتكرار عملية التحقق من العناصر وإضافتها إلى مصفوفة جديدة حتى تتم معالجة جميع العناصر من المصفوفة الأصلية.
طريقة الحد
طريقة الحد هي واحدة من أساليب مجموعة أقوى ومرنة في جافا سكريبت. يسمح لك بتحويل مصفوفة إلى قيمة واحدة باستخدام وظيفة المجمع.
تقبل وظيفة المجمع ، التي تم تمريرها كوسيطة لطريقة الاختزال ، أربع معلمات: المجمع ، العنصر الحالي ، فهرس العنصر الحالي والمصفوفة نفسها. أثناء التنفيذ ، يتم تنفيذ وظيفة المجمع لكل عنصر من عناصر المصفوفة ، وتحديث قيمة المجمع.
تتمثل ميزة طريقة التخفيض في أنها تسمح لك بتطبيق أي عملية على عناصر المصفوفة والحصول على قيمة واحدة بناء على هذه العملية. على سبيل المثال ، يمكننا استخدام طريقة الاختزال لجمع عناصر المصفوفة ، والعثور على القيمة القصوى أو الدنيا ، ودمج السلاسل ، وغير ذلك الكثير.
فيما يلي مثال على استخدام طريقة تقليل لإزالة العناصر المكررة من صفيف:
مجموعة كونست = [1, 2, 3, 4, 1, 2, 5, 6, 3];
كونست ونيكيراي = صفيف.تقليل ((المجمع ، القيمة الحالية) = > {
إذا (!تراكم.يتضمن (القيمة الحالية)) {//تحقق مما إذا كانت البطارية تحتوي على
المجمع الحالي.عنصر الدفع (القيمة الحالية) ؛ / / إذا لم يكن كذلك ، أضف العنصر الحالي إلى البطارية
}
عودة تراكم; // إعادة البطارية
}, []);
.
يمكن استخدام طريقة التخفيض ليس فقط لإزالة العناصر المكررة ، ولكن أيضا لحل المهام الأخرى المتعلقة بتحويل المصفوفات. إذا لزم الأمر ، يمكنك تحديد شرط للتخلص من التكرار ، أو إجراء معالجات أكثر تعقيدا مع عناصر المصفوفة.
سؤال وجواب
كيف يمكنني إزالة العناصر المكررة من مصفوفة في جافا سكريبت?
هناك طرق مختلفة لإزالة العناصر المكررة من مصفوفة في جافا سكريبت. على سبيل المثال ، يمكنك استخدام أساليب التصفية() و إندكسوف (). يمكنك أيضا إنشاء مصفوفة جديدة وإضافة عناصر فريدة إليها فقط باستخدام حلقة.
كيف تصفية () طريقة العمل لإزالة العناصر المكررة?
تقوم طريقة التصفية() بإنشاء مصفوفة جديدة تحتوي فقط على تلك العناصر التي ترجع لها وظيفة رد الاتصال بشكل صحيح. لإزالة العناصر المكررة من صفيف باستخدام طريقة التصفية () ، تحتاج إلى التحقق من فهرس العنصر الحالي باستخدام طريقة الفهرس (). إذا كان فهرس العنصر الحالي يساوي أو أقل من فهرس عنصر التكرار الأول ، فسيتم إضافة العنصر إلى المصفوفة الجديدة.
كيف يمكنني استخدام إندكسوف () طريقة لإزالة العناصر المكررة?
تقوم طريقة الفهرس () بإرجاع فهرس التكرار الأول لعنصر في المصفوفة. لإزالة العناصر المكررة باستخدام طريقة إندكسوف () ، يمكنك استخدام ل حلقة أو الخريطة () وتشمل () الأساليب. من الضروري التحقق مما إذا كان هناك فهرس للعنصر الحالي في المصفوفة باستخدام طريقة الفهرس (). إذا كان فهرس العنصر الحالي يساوي الفهرس الحالي ، فسيتم إضافة العنصر إلى المصفوفة الجديدة.
هل من الممكن إزالة العناصر المكررة من صفيف دون استخدام الحلقات والأساليب?
نعم ، من الممكن إزالة العناصر المكررة من صفيف دون استخدام الحلقات والأساليب. للقيام بذلك ، يمكنك تحويل مصفوفة إلى كائن باستخدام عامل الانتشار ومشغل الامتداد ثم تحويل الكائن مرة أخرى إلى مصفوفة باستخدام الكائن.طريقة المفاتيح (). نتيجة لذلك ، ستتم إزالة العناصر المكررة وسيتم الحفاظ على ترتيب العناصر.
هل من الممكن لإزالة العناصر المكررة من مجموعة متعددة الأبعاد في جافا سكريبت?
نعم ، من الممكن إزالة العناصر المكررة من مصفوفة متعددة الأبعاد في جافا سكريبت. للقيام بذلك ، يمكنك استخدام الطريقة المسطحة() لتحويل مصفوفة متعددة الأبعاد إلى مصفوفة أحادية البعد ، ثم تطبيق أي من طرق إزالة العناصر المكررة التي تم وصفها مسبقا.
ما هي وظائف أو طرق مكتبة جافا سكريبت لوداش يمكن استخدامها لإزالة العناصر المكررة من صفيف?l JavaScript?
لإزالة العناصر المكررة من مصفوفة في مكتبة جافا سكريبت لوداش ، يمكنك استخدام وظيفة أونيك () ، التي ترجع مصفوفة جديدة تحتوي على عناصر l unique فقط ، أو طريقة أونيكبي () ، والذي يسمح لك لتحديد وظيفة لتحديد تفرد العناصر من قبل خاصية أو وظيفة معينة. يمكنك أيضا استخدام طريقة بولال () ، التي تزيل جميع القيم المحددة من المصفوفة.