هل القيمة موجودة؟ includes
للمصفوفات عمليات جاهزة توفّر علينا كتابة الحلقات؛ نكتب اسم المصفوفة ثم نقطة ثم اسم العملية. فمثلًا list.includes(value) تُرجع true إذا كانت القيمة في المصفوفة، وfalse إذا لم تكن:
const wordList = ["dog", "dog", "dog", "dag", "dog"];
console.log(wordList.includes("dag"));
console.log(wordList.includes("cat"));true false
أين القيمة؟ indexOf
list.indexOf(value) تُرجع رقم ترتيب القيمة (من 0)، وإذا تكررت تعطي أول مكان لها. وإذا لم تكن موجودة تُرجع -1:
const wordList = ["bat", "bat", "bat", "bat", "bat", "bat", "bit", "bat"];
console.log(wordList.indexOf("bit"));
console.log(wordList.indexOf("pen"));6 -1
indexOf بحرف O كبير، وإلا ظهر خطأ.الترتيب sort والعكس reverse
list.sort() ترتّب النصوص أبجديًا من A إلى Z، وlist.reverse() تعكس الترتيب فتصبح الأخيرة أولى. كلتاهما تغيّر المصفوفة نفسها، لذلك نطبعها في سطر بعدها:
const nameList = ["Emma", "Sophia", "Oliver", "Alex"]; nameList.sort(); console.log(nameList); nameList.reverse(); console.log(nameList);
["Alex", "Emma", "Oliver", "Sophia"] ["Sophia", "Oliver", "Emma", "Alex"]
sort() بلا شيء داخل القوسين تعامل كل القيم كنصوص، حتى الأعداد! فتقارن الرقم الأول أولًا، فيأتي 100 قبل 25 و9:const nums = [25, 100, 9, 41]; nums.sort(); console.log(nums);
[100, 25, 41, 9]
لترتيب الأعداد نعطي sort دالة مقارنة تأخذ قيمتين a وb وتُرجع a - b: إذا كان الناتج سالبًا توضع a أولًا. وللترتيب من الأكبر إلى الأصغر نُرجع b - a:
function smallFirst(a, b) {
return a - b;
}
function bigFirst(a, b) {
return b - a;
}
const nums = [25, 100, 9, 41];
nums.sort(smallFirst);
console.log(nums);
nums.sort(bigFirst);
console.log(nums);[9, 25, 41, 100] [100, 41, 25, 9]
تدريبات
اطبع: هل قائمة الكلمات تحتوي على "bell"؟ (الناتج true)
const wordList = ["ball", "ball", "ball", "ball", "bell", "ball", "ball"]; console.log(wordList.includes(___));
اضغط «تشغيل» لترى النتيجة. في السطر 3 اطبع رقم ترتيب الكلمة "pen" في قائمة الكلمات.
const wordList = ["pan", "pan", "pen", "pan", "pan", "pan", "pan", "pan"];
اضغط «تشغيل» لترى النتيجة. أكمل السطر 3 لترتيب guestList أبجديًا قبل طباعتها.
let guestList = ["Johnson", "Smith", "Brown", "Davis", "Wilson"]; ___ console.log(guestList);
اضغط «تشغيل» لترى النتيجة. من السطر 3: اعكس ترتيب rankingList، ثم اطبعها.
const rankingList = ["Mason", "Isabella", "William", "Charlotte", "Mohamed"];
اضغط «تشغيل» لترى النتيجة. رتّب الدرجات من الأصغر إلى الأكبر ترتيبًا عدديًا واطبعها. الناتج: [9, 23, 45, 78, 100]
تلميح
marks.sort() وحدها تعطي [100, 23, 45, 78, 9]. تحتاج دالة مقارنة تُرجع a - b.const marks = [45, 100, 9, 78, 23];
اضغط «تشغيل» لترى النتيجة. نتائج مسابقة. رتّبها من الأكبر إلى الأصغر واطبع المصفوفة، ثم اطبع درجة الفائز (أول قيمة). الناتج: [100, 95, 91, 88, 72] ثم Winner: 100.
const scores = [88, 95, 72, 100, 91];
اضغط «تشغيل» لترى النتيجة. طابور المقصف. اطبع ترتيب Omar في الطابور مبتدئًا العدّ من 1: Omar is number 3. استخدم indexOf.
تلميح
indexOf تبدأ من 0، فأضف 1. وضع الجمع بين قوسين حتى لا يُلصق كنص.const queue = ["Ali", "Mona", "Omar", "Sara"];
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
list.includes(v)→ true أو false، وlist.indexOf(v)→ رقم الترتيب أو-1.list.sort()ترتيب أبجدي، وlist.reverse()عكس الترتيب، وكلتاهما تغيّر المصفوفة نفسها.- لترتيب الأعداد:
list.sort(f)حيث الدالةf(a, b)تُرجعa - b(أوb - aللتنازلي).