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

المصفوفات

الدرس السابق حفظ الوقائع في نص يمكن إرساله لاحقًا. هنا تبقى القائمة حيّة داخل السكربت ويمكنك تبديل خاناتها. ثلاثة أسماء ألوان تقف بالترتيب. تشير إلى الخانة برقمها، لا بمفتاح.

رف لا مذكرة

الأقواس المربّعة تبني القائمة أثناء تشغيل السكربت، وكل قيمة تجلس في خانة مرقّمة. هذا ليس نص JSON ينتظر parse، وليس كائنًا بحقول لها أسماء. معنى هذا الشكل كله في ترتيب الخانات.

الاسم مقابل الرقم

📊 كائن مسمّى مقابل مصفوفة مرقّمة

السؤال الكائن المصفوفة
كيف تشير مفتاح مثل name فهرس مثل 0
أول لون ليست قائمة ألوان colors[0]
كم العدد تعدّ المفاتيح بنفسك length
الترتيب ليس هو المقصود هو المقصود
بعد درس JSON مذكرة عن البيانات قائمة حيّة في السكربت

الكائن يسألك أي اسم تقصد، أما المصفوفة فتسألك أي موضع. اللون الأول هو colors[0] ومن غير مفتاح. وضع كائن داخل خانة عادة لاحقة، ليست شغل هذه الصفحة.

أقواس مربّعة لا معقوفة

القوس المعقوف يفتح الكائن، والقوس المربّع يفتح المصفوفة. ثلاثة أسماء ألوان تعني ثلاث خانات متتالية. الكوب في الدرس السابق كان حقلًا باسم، لا قائمة. حين تريد قائمة بلا أسماء على الخانات، أبقِ الأقواس المربّعة.

قراءة الخانة الأولى

javascript
let colors = ["red", "green", "blue"];
console.log(colors[0]);

الخانة صفر هي أول لون

colors[0] يطبع red. العدّ يبدأ من الصفر لا من واحد. إن بدأت من واحد أضعت الأحمر. الخانة الثانية green والثالثة blue.

الطول والخانة الأخيرة

javascript
let colors = ["red", "green", "blue"];
console.log(colors.length);
console.log(colors[colors.length - 1]);

length يعدّ الخانات

colors.length يساوي ٣ لأن ثلاثة أسماء مخزّنة، والخانة الأخيرة colors[colors.length - 1] هي blue. تنقص واحدًا لأن أول فهرس صفر لا واحد. length خاصية ولا يقبل أقواس النداء.

استبدال خانة موجودة

javascript
let colors = ["red", "green", "blue"];
colors[1] = "gold";
console.log(colors[1]);
console.log(colors.length);

استبدال الخانة لا يغيّر العدد

colors[1] = "gold" يكتب فوق green. القراءة التالية لتلك الخانة تطبع gold. يبقى length على ٣. الخانة الموجودة تغيّرت، ولم تُضف خانة جديدة. الإضافة والحذف لدرس دوال المصفوفة.

القراءة بعد النهاية

javascript
let colors = ["red", "green", "blue"];
console.log(colors[9]);
console.log(colors.length);

الفهرس الفارغ ليس خانة جديدة

colors[9] لا يخزّن شيئًا، فالقراءة undefined وlength ما زال ٣. قراءة الخانة الفارغة لا تُطيل القائمة. الكتابة بعد النهاية تُكبّر الطول وتترك فجوات، وليست أداة هذه الصفحة.

كيس مختلط وفيه خانات

javascript
let bag = ["red", 12, true];
console.log(bag[1]);
console.log(typeof bag[0]);

نوع واحد أوضح حين تستطيع

قد تحمل الخانة نصًا أو رقمًا أو boolean. bag[1] يطبع ١٢ وtypeof bag[0] يساوي string. قائمة الألوان أسهل من الكيس المختلط. اللغة لا تمنع الخلط.

أظهر اللون الأول في الصفحة

اقرأ الفهرس صفر واكتب ذلك النص في الفقرة. دع اللونين الآخرين داخل القائمة.

مثال الصفحة — اللون الأول

html
<!DOCTYPE html>
<html>
<head>
<title>arrays — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let colors = ["red", "green", "blue"];
let box = document.getElementById("line");
box.textContent = colors[0];
</script>
</body>
</html>

الفقرة تعرض red. غيّر النص الأول داخل الأقواس فقط ثم حدّث الصفحة فيتبع السطر. اللونان الآخران يبقيان مخزّنين ولا يُكتبان في الفقرة.

خطوات التدريب

  1. ابنِ الألوان الثلاثة واقرأ الفهرس صفر، ثم اقرأ الطول وصل إلى اللون الأخير بطول ناقص واحد.
  2. اجعل الفهرس ١ يساوي gold واقرأ تلك الخانة والطول.
  3. اقرأ الفهرس ٩ وتأكد أن الطول ما زال ٣، وفي الكيس المختلط انظر إلى الرقم ونوع الخانة الأولى.
  4. في مثال HTML غيّر اللون الأول فقط، حدّث، واقرأ الفقرة.

زلات شائعة

  • العدّ من واحد وإضاعة اللون الأول، واستدعاء length بأقواس كأنه دالة
  • معاملة المصفوفة كنص JSON وتمريرها إلى parse
  • توقّع أن مجرد قراءة فهرس فارغ يزيد length، أو أن استبدال خانة يعني إضافة عنصر
  • البحث عن دوال المصفوفة في هذه الصفحة

الخلاصة

  • المصفوفة قائمة حيّة داخل السكربت والأقواس المربّعة تبنيها
  • الفهرس صفر هو أول عنصر
  • length يعدّ الخانات ولا يأخذ أقواس نداء
  • الكتابة على فهرس موجود تبدّل تلك الخانة، والقراءة بعد النهاية undefined من غير أن يتغيّر الطول
  • العنصر الأول يملأ سطرًا في الصفحة، والدرس التالي دوال المصفوفة للإضافة والحذف

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

جاهز للبدء

اختبر معرفتك

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

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

📝 التعليمات

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