جاري التحميل...

دوال المصفوفة

الصفحة السابقة لم تمسّ العدد حين أعدت الكتابة فوق خانة الألوان. هنا سلّة تسوّق فيها خبز وحليب وبيض. استدعاء الدالة يحق له أن يزيد القطع أو ينقصها.

العدد مسموح له أن يتحرّك

هذه النداءات الخمسة تعدّل المصفوفة التي بين يديك، لا نصًا جديدًا كما تفعل دوال النصوص ولا دالة خزّنتها أنت على كائن. push وpop وunshift وshift وsplice أدوات جاهزة للقائمة نفسها.

خمسة نداءات على بطاقة

أبقِ البطاقة بجانب الأمثلة حتى لا تصعد إلى أعلاها كل مرة. في كثير من الأحيان القيمة العائدة ليست السلّة. تكون عددًا، أو القطعة التي غادرت، أو مصفوفة صغيرة.

📊 خمسة نداءات للمصفوفة

النداء أين يعمل ماذا يعود length
push الآخر الطول الجديد يكبر بعدد القطع التي مرّرتها
pop الآخر القطعة المحذوفة ينقص واحدًا
unshift المقدّمة الطول الجديد يكبر بعدد القطع التي مرّرتها
shift المقدّمة القطعة المحذوفة ينقص واحدًا
splice فهرس تختاره مصفوفة صغيرة من المحذوف ينقص بقدر عدد الحذف

نداءات الإضافة تُرجع الطول الجديد كعدد، ونداءات الأخذ من طرف تُرجع القطعة نفسها. splice يُرجع مصفوفة صغيرة حتى حين يحذف خانة واحدة، والكلمة تقف في الفهرس 0 من تلك النتيجة.

الشاي في الآخر

تبدأ السلّة بخبز وحليب وبيض. push يضع الشاي بعد البيض. الرقم الذي تسمعه فورًا هو عدد الخانات الآن.

ضع الشاي في الآخر

javascript
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 لأن قطعة واحدة أُلحقت في الآخر. حجّتان تعنيان نمو خانتين. هنا نمرّر حجة واحدة ليبقى الرقم سهل القراءة.

خذ آخر قطعة

javascript
let cart = ["bread", "milk", "eggs"];
let gone = cart.pop();
console.log(gone);
console.log(cart.length);

آخر قطعة تغادر

pop يرفع البيض من الآخر ويعيد تلك السلسلة، ويصبح length مساويًا 2. تبقى السلّة خبزًا ثم حليبًا. هذا النداء لا يعيد الطول الجديد. السلّة الفارغة كانت ستعيد undefined، وأمثلة هذه الصفحة لا تبدأ فارغة.

ضع الشاي في المقدّمة

javascript
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 من غير كتابة فوق خانة موجودة. كل قطعة قديمة تتقدّم خطوة نحو الآخر.

خذ قطعة المقدّمة

javascript
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.

اقطع الخانة الوسطى

javascript
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 داخل الفقرة. السطر يجب أن يكون العدد لا قائمة التسوق.

عرض الصفحة — الطول بعد push

html
<!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.

جرّب على سلّة جديدة

  1. أضف الشاي بـ push بعد الخبز والحليب والبيض، واقرأ الرقم العائد والفهرس 3 معًا.
  2. نفّذ pop مرة واقرأ الكلمة المحذوفة والطول الجديد، ثم ضع الشاي في المقدّمة بـ unshift وانظر الفهرس 0 والفهرس 1.
  3. نفّذ shift مرة واقرأ الكلمة التي غادرت مع الفهرس 0 الجديد، ثم splice من الفهرس 1 بحذف خانة واحدة وقارن removed[0] بالطول.
  4. على الصفحة أضف الشاي بـ push، حدّث، اقرأ السطر، ثم بدّل الشاي إلى مربّى وحدّث مرة ثانية.

مواضع تُضيع العلامة

  • كتبت cart[1] = "tea" وأنت تقصد إضافة خانة، أو نسيت قوسي push وpop
  • حسبت قيمة pop هي الطول الجديد
  • توقعت أن يعيد splice سلسلة الحليب وحدها لا مصفوفة
  • ظننت أن الفهرس 0 يبقى خبزًا بعد unshift، أو خلطت هذه الصفحة بعبور كل العناصر أو بالبحث عن قيمة

ما يبقى معك

  • هذه النداءات تعدّل المصفوفة نفسها
  • push وunshift يعيدان الطول الجديد، وpop وshift يعيدان القطعة التي غادرت
  • splice يعيد مصفوفة صغيرة من المحذوف
  • الفقرة تستطيع أن تعرض الطول بعد push فقط
  • الدرس التالي هو التكرار على المصفوفة، والبحث في المصفوفة يأتي بعده

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
8
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى