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

السؤال

نشر

السلام عليكم

من فضلكم اود ان افهم دور هادا الكود  

return myString.indexOf(ele) === index;

والدي هو داخل هاته الدالة والتي عملها هو فلترة الحروف المكررة بحيث تصبح لدينا سلسلة نصية صحيحة والتي هي   Shima

let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("").filter(function (ele, index) {
  return myString.indexOf(ele) === index;
}).reduce(function (acc, current) {
  return `${acc}${current}`;
});

جزاكم الله خيرا.

Recommended Posts

  • 0
نشر (معدل)
let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("").filter(function (ele, index) {
  return myString.indexOf(ele) === index;
}).reduce(function (acc, current) {
  return `${acc}${current}`;
});

اولاً نحول النص الى مصفوفة

let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("") // [S,S,h,h,i,m,m,m,m,m,a,a,a,a]

ثانياً

index هي عنوان العنصر في المصفوفة أي : اول عنصر 0 الثاني 1 الثالث 2 ...

ele هو العنصر بذاته أي : الاول S الثاني S الثالث h ...

نقوم بداخل الدالة filter بحذف العناصر المكررة .

حيث أن myString.indexOf تقوم بأرجاع اول عنوان يطابق ele في المصفوفة myString 

و index هو عنوان ال ele في هذه الloop

كما قد وضحت لك في الشيفرة التالية كيف ستكون المقارنة في كل دورة في هذه ال loop 

الطرف الايسر يمثل  myString.indexOf

الطرف الأيمن index

let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("").filter(function (ele, index) {
  return myString.indexOf(ele) === index;
  // 			0 === 0 => [s]
  //            0 !== 1 false
  //            2 === 2 => [s,h]
  //            2 !== 3 => false
  //            4 === 4 => [s,h,i]
  //       وهكذا
  
});
console.log(fiArr) // [ 'S', 'h', 'i', 'm', 'a' ]

 

تم التعديل في بواسطة Mohammad Al Eik
  • 0
نشر
بتاريخ 45 دقائق مضت قال Mohammad Al Eik:

let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("").filter(function (ele, index) {
  return myString.indexOf(ele) === index;
}).reduce(function (acc, current) {
  return `${acc}${current}`;
});

اولاً نحول النص الى مصفوفة


let myString = "SShhimmmmmaaaa";

let fiArr = myString.split("") // [S,S,h,h,i,m,m,m,m,m,a,a,a,a]

ثانياً

index هي عنوان العنصر في المصفوفة أي : اول عنصر 0 الثاني 1 الثالث 2 ...

ele هو العنصر بذاته أي : الاول S الثاني S الثالث h ...

نقوم بداخل الدالة filter بحذف العناصر المكررة .

حيث أن myString.indexOf تقوم بأرجاع اول عنوان يطابق ele في المصفوفة myString 

و index هو عنوان ال ele في هذه الloop

كما قد وضحت لك في الشيفرة التالية كيف ستكون المقارنة في كل دورة في هذه ال loop 

الطرف الايسر يمثل  myString.indexOf

الطرف الأيمن index


0 === 0 => [s]
  //            0 !== 1 false
  //            2 === 2 => [s,h]
  //            2 !== 3 => false
  //            4 === 4 => [s,h,i]

 

شكرا لك اخي على سعة ورحب صدرك في توضيح الفكرة

لكن صراحة لم اصل الى الفهم بشكل دقيق وخصوصا لهدا الجزء الدي قمت بشرحه في المثال السابق

اعتدر على كثرة الاسئلة

  • 0
نشر (معدل)

أظن ان النقطة التي تسبب اللغط لديك هي هذه 

myString.indexOf(ele)

هنا يقوم بالبحث عن اول عنصر مطابق يجده في المصفوفة myString ثم يعطينا دليله , مثلاً

myString.indexOf("S")

سوف يعطينا 0 دائما لأنه اول عنصر في المصفوفة myString 

myString.indexOf("h")

سوف يعطي 2 لأنه ثالث عنصر في المصفوفة 

بغض النظر عن أن S و h مكررين في المصفوفة لأن indexOf تعيد أول عنصر مطابق تجده 

تم التعديل في بواسطة Mohammad Al Eik

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...