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

شرح كود جافاسكريبت

توفيق اسحيمة

السؤال

السلام عليكم

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

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...