اذهب إلى المحتوى
  • 0

ما هي الطريقة الصحيحة لإزالة العناصر المتكررة من مصفوفة في جافاسكربت؟

محمود_سعداوي

السؤال

السلام عليكم.

في الكود التالي أريد الحصول على array جديد لا يحتوي الحروف المكررة

let myString = "EElllzzzzzzzeroo";

myString.split("");
myString.filter((el,i) => {
    return myString.indexOf(el) === i
})

console.log(myString)

الرجاء توضيح رسالة الخطأ التي تظهر لي

cap1.PNG.c2b3731f1d6b95b96a2579cc30c00852.PNG

شكرا لكم.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يظهر الخطأ لأنك تحاول استدعاء تابع يخص المصفوفات على سلسلة نصية. 

myString.split("");
myString.filter

فالتابع split لا يقوم بتجاوز تعريف المتغير بل يعيد مصفوفة جديدة تماما. في هاته الحالة تبقى myString سلسلة نصية في حال لم يتم تجاوزها عن طريق:
 

let myString = "EElllzzzzzzzeroo";

myString = myString.split("");

او مباشرة:

.split("")
.filter((el,i) => {
    return myString.indexOf(el) === i
})

ثم لخدمة الغرض الذي لديك يكفي :

let myString = "EElllzzzzzzzeroo";

myString = myString
.split("")
.filter((el,i) => {
    return myString.indexOf(el) === i
})

يفترض ان يحل المشكل لديك. 

ستعاد مصفوفة من حروف فريدة في المصفوفة.

["E", "l", "z", "e", "r", "o"]
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الطريقة الأسرع  لتنقية مصفوفة جافاسكربت من العناصر المكررة هي إستخدام Set مع spread function ( أو ...) كما في المثال

	let myString = "EElllzzzzzzzeroo";
	let array= myString.split("")  // نحول النص الى مصفوفة
	let uniqueArrayElements = [...new Set(array)];  // نستخرج العناصر الفريدة  
	

لاحظ أننا لم نعدل على المصفوفة الأصلية الناتجة من تقسيم النص. أيضاً بالنسبة للخطأ الذي يظهر لك سببه أنك تحاول إستدعاء دالة filter ( التابعة للنوع Array ) من خلال  متغير من النوع String.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...