JavaScript / المصفوفات

عمليات المصفوفات (1): includes و indexOf و sort و reverse

اعرف هل القيمة موجودة في المصفوفة وأين مكانها، ورتّب المصفوفة أو اعكس ترتيبها بعمليات جاهزة. منهج البكالوريا

هل القيمة موجودة؟ includes

للمصفوفات عمليات جاهزة توفّر علينا كتابة الحلقات؛ نكتب اسم المصفوفة ثم نقطة ثم اسم العملية. فمثلًا list.includes(value) تُرجع true إذا كانت القيمة في المصفوفة، وfalse إذا لم تكن:

JavaScript
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:

JavaScript
const wordList = ["bat", "bat", "bat", "bat", "bat", "bat", "bit", "bat"];
console.log(wordList.indexOf("bit"));
console.log(wordList.indexOf("pen"));
وحدة التحكم
6
-1
الناتج 6 يعني أن "bit" هي الكلمة السابعة. واكتب indexOf بحرف O كبير، وإلا ظهر خطأ.

الترتيب sort والعكس reverse

list.sort() ترتّب النصوص أبجديًا من A إلى Z، وlist.reverse() تعكس الترتيب فتصبح الأخيرة أولى. كلتاهما تغيّر المصفوفة نفسها، لذلك نطبعها في سطر بعدها:

JavaScript
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:
JavaScript
const nums = [25, 100, 9, 41];
nums.sort();
console.log(nums);
وحدة التحكم
[100, 25, 41, 9]

لترتيب الأعداد نعطي sort دالة مقارنة تأخذ قيمتين a وb وتُرجع a - b: إذا كان الناتج سالبًا توضع a أولًا. وللترتيب من الأكبر إلى الأصغر نُرجع b - a:

JavaScript
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]

تدريبات

1أكمل الفراغتدريب المنهج

اطبع: هل قائمة الكلمات تحتوي على "bell"؟ (الناتج true)

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const wordList = ["ball", "ball", "ball", "ball", "bell", "ball", "ball"];

console.log(wordList.includes(___));
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
2اكتب البرنامجتدريب المنهج

في السطر 3 اطبع رقم ترتيب الكلمة "pen" في قائمة الكلمات.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const wordList = ["pan", "pan", "pen", "pan", "pan", "pan", "pan", "pan"];

وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
3أكمل الفراغتدريب المنهج

أكمل السطر 3 لترتيب guestList أبجديًا قبل طباعتها.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
let guestList = ["Johnson", "Smith", "Brown", "Davis", "Wilson"];

___
console.log(guestList);
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
4اكتب البرنامجتدريب المنهج

من السطر 3: اعكس ترتيب rankingList، ثم اطبعها.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const rankingList = ["Mason", "Isabella", "William", "Charlotte", "Mohamed"];

وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
5اكتب البرنامجتدريب إضافي

رتّب الدرجات من الأصغر إلى الأكبر ترتيبًا عدديًا واطبعها. الناتج: [9, 23, 45, 78, 100]

تلميحmarks.sort() وحدها تعطي [100, 23, 45, 78, 9]. تحتاج دالة مقارنة تُرجع a - b.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const marks = [45, 100, 9, 78, 23];
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
6اكتب البرنامجتدريب إضافي

نتائج مسابقة. رتّبها من الأكبر إلى الأصغر واطبع المصفوفة، ثم اطبع درجة الفائز (أول قيمة). الناتج: [100, 95, 91, 88, 72] ثم Winner: 100.

JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
const scores = [88, 95, 72, 100, 91];
وحدة التحكم
اضغط «تشغيل» لترى النتيجة.
7اكتب البرنامجتدريب إضافي

طابور المقصف. اطبع ترتيب Omar في الطابور مبتدئًا العدّ من 1: Omar is number 3. استخدم indexOf.

تلميحindexOf تبدأ من 0، فأضف 1. وضع الجمع بين قوسين حتى لا يُلصق كنص.
JavaScript Ctrl/⌘ + Enter للتشغيل · Esc ثم Tab للخروج من المحرر
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 للتنازلي).