دوال المصفوفة
الصفحة السابقة لم تمسّ العدد حين أعدت الكتابة فوق خانة الألوان. هنا سلّة تسوّق فيها خبز وحليب وبيض. استدعاء الدالة يحق له أن يزيد القطع أو ينقصها.
العدد مسموح له أن يتحرّك
هذه النداءات الخمسة تعدّل المصفوفة التي بين يديك، لا نصًا جديدًا كما تفعل دوال النصوص ولا دالة خزّنتها أنت على كائن. push وpop وunshift وshift وsplice أدوات جاهزة للقائمة نفسها.
خمسة نداءات على بطاقة
أبقِ البطاقة بجانب الأمثلة حتى لا تصعد إلى أعلاها كل مرة. في كثير من الأحيان القيمة العائدة ليست السلّة. تكون عددًا، أو القطعة التي غادرت، أو مصفوفة صغيرة.
📊 خمسة نداءات للمصفوفة
| النداء | أين يعمل | ماذا يعود | length |
|---|---|---|---|
push |
الآخر | الطول الجديد | يكبر بعدد القطع التي مرّرتها |
pop |
الآخر | القطعة المحذوفة | ينقص واحدًا |
unshift |
المقدّمة | الطول الجديد | يكبر بعدد القطع التي مرّرتها |
shift |
المقدّمة | القطعة المحذوفة | ينقص واحدًا |
splice |
فهرس تختاره | مصفوفة صغيرة من المحذوف | ينقص بقدر عدد الحذف |
نداءات الإضافة تُرجع الطول الجديد كعدد، ونداءات الأخذ من طرف تُرجع القطعة نفسها. splice يُرجع مصفوفة صغيرة حتى حين يحذف خانة واحدة، والكلمة تقف في الفهرس 0 من تلك النتيجة.
الشاي في الآخر
تبدأ السلّة بخبز وحليب وبيض. push يضع الشاي بعد البيض. الرقم الذي تسمعه فورًا هو عدد الخانات الآن.
let cart = ["bread", "milk", "eggs"];
let n = cart.push("tea");
console.log(n);
console.log(cart[3]);
console.log(cart.length);
n يساوي 4، أي الطول الجديد لا الكلمة tea. الفهرس 3 يمسك الشاي وlength يساوي 4 لأن قطعة واحدة أُلحقت في الآخر. حجّتان تعنيان نمو خانتين. هنا نمرّر حجة واحدة ليبقى الرقم سهل القراءة.
let cart = ["bread", "milk", "eggs"];
let gone = cart.pop();
console.log(gone);
console.log(cart.length);
آخر قطعة تغادر
pop يرفع البيض من الآخر ويعيد تلك السلسلة، ويصبح length مساويًا 2. تبقى السلّة خبزًا ثم حليبًا. هذا النداء لا يعيد الطول الجديد. السلّة الفارغة كانت ستعيد undefined، وأمثلة هذه الصفحة لا تبدأ فارغة.
let cart = ["bread", "milk", "eggs"];
let n = cart.unshift("tea");
console.log(n);
console.log(cart[0]);
console.log(cart[1]);
واجهة جديدة
unshift يعيد 4 أيضًا لأنه الطول الجديد، والفهرس 0 صار شايًا. ينزلق الخبز إلى الفهرس 1 من غير كتابة فوق خانة موجودة. كل قطعة قديمة تتقدّم خطوة نحو الآخر.
let cart = ["bread", "milk", "eggs"];
let gone = cart.shift();
console.log(gone);
console.log(cart[0]);
console.log(cart.length);
المقدّمة تفرغ
shift يعيد الخبز، أي القطعة التي غادرت لا طولًا. بعد ذلك الفهرس 0 هو الحليب وlength يساوي 2. البيض ما زال أخيرًا. موضعه فقط صار الفهرس 1.
let cart = ["bread", "milk", "eggs"];
let removed = cart.splice(1, 1);
console.log(removed[0]);
console.log(cart.length);
console.log(cart[1]);
خانة اخترتها أنت
الحجة الأولى فهرس البداية والثانية كم خانة تُحذف. يغادر الحليب وremoved مصفوفة من خانة واحدة، لذا removed[0] هو الحليب وليس النداء نفسه سلسلة الحليب. يصير length مساويًا 2 والفهرس 1 هو البيض، لأن الخبز بقي عند 0 والبيض أغلق الفراغ. إن مرّرت 0 كعدد الحذف حصل إدراج بلا حذف. دع هذا الشكل لوقت لاحق.
الصفحة تطبع الطول الجديد
أضف الشاي عبر push. ثم اكتب length داخل الفقرة. السطر يجب أن يكون العدد لا قائمة التسوق.
<!DOCTYPE html>
<html>
<head>
<title>array-methods — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let cart = ["bread", "milk", "eggs"];
cart.push("tea");
let box = document.getElementById("line");
box.textContent = cart.length;
</script>
</body>
</html>
تُظهر الفقرة الرقم 4. بدّل السلسلة المضافة من شاي إلى مربّى ثم حدّث الصفحة؛ يبقى السطر 4 لأنك ما زلت تضيف قطعة واحدة. تغيّرت الكلمة ولم يتغيّر العدد. يبقى الخبز والحليب والبيض أمام أي شيء أضفته بـ push.
جرّب على سلّة جديدة
- أضف الشاي بـ
pushبعد الخبز والحليب والبيض، واقرأ الرقم العائد والفهرس 3 معًا. - نفّذ
popمرة واقرأ الكلمة المحذوفة والطول الجديد، ثم ضع الشاي في المقدّمة بـunshiftوانظر الفهرس 0 والفهرس 1. - نفّذ
shiftمرة واقرأ الكلمة التي غادرت مع الفهرس 0 الجديد، ثمspliceمن الفهرس 1 بحذف خانة واحدة وقارنremoved[0]بالطول. - على الصفحة أضف الشاي بـ
push، حدّث، اقرأ السطر، ثم بدّل الشاي إلى مربّى وحدّث مرة ثانية.
مواضع تُضيع العلامة
- كتبت
cart[1] = "tea"وأنت تقصد إضافة خانة، أو نسيت قوسيpushوpop - حسبت قيمة
popهي الطول الجديد - توقعت أن يعيد
spliceسلسلة الحليب وحدها لا مصفوفة - ظننت أن الفهرس 0 يبقى خبزًا بعد
unshift، أو خلطت هذه الصفحة بعبور كل العناصر أو بالبحث عن قيمة
ما يبقى معك
- هذه النداءات تعدّل المصفوفة نفسها
pushوunshiftيعيدان الطول الجديد، وpopوshiftيعيدان القطعة التي غادرتspliceيعيد مصفوفة صغيرة من المحذوف- الفقرة تستطيع أن تعرض الطول بعد
pushفقط - الدرس التالي هو التكرار على المصفوفة، والبحث في المصفوفة يأتي بعده
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى