المصفوفات
الدرس السابق حفظ الوقائع في نص يمكن إرساله لاحقًا. هنا تبقى القائمة حيّة داخل السكربت ويمكنك تبديل خاناتها. ثلاثة أسماء ألوان تقف بالترتيب. تشير إلى الخانة برقمها، لا بمفتاح.
رف لا مذكرة
الأقواس المربّعة تبني القائمة أثناء تشغيل السكربت، وكل قيمة تجلس في خانة مرقّمة. هذا ليس نص JSON ينتظر parse، وليس كائنًا بحقول لها أسماء. معنى هذا الشكل كله في ترتيب الخانات.
الاسم مقابل الرقم
📊 كائن مسمّى مقابل مصفوفة مرقّمة
| السؤال | الكائن | المصفوفة |
|---|---|---|
| كيف تشير | مفتاح مثل name | فهرس مثل 0 |
| أول لون | ليست قائمة ألوان | colors[0] |
| كم العدد | تعدّ المفاتيح بنفسك | length |
| الترتيب | ليس هو المقصود | هو المقصود |
| بعد درس JSON | مذكرة عن البيانات | قائمة حيّة في السكربت |
الكائن يسألك أي اسم تقصد، أما المصفوفة فتسألك أي موضع. اللون الأول هو colors[0] ومن غير مفتاح. وضع كائن داخل خانة عادة لاحقة، ليست شغل هذه الصفحة.
أقواس مربّعة لا معقوفة
القوس المعقوف يفتح الكائن، والقوس المربّع يفتح المصفوفة. ثلاثة أسماء ألوان تعني ثلاث خانات متتالية. الكوب في الدرس السابق كان حقلًا باسم، لا قائمة. حين تريد قائمة بلا أسماء على الخانات، أبقِ الأقواس المربّعة.
let colors = ["red", "green", "blue"];
console.log(colors[0]);
الخانة صفر هي أول لون
colors[0] يطبع red. العدّ يبدأ من الصفر لا من واحد. إن بدأت من واحد أضعت الأحمر. الخانة الثانية green والثالثة blue.
let colors = ["red", "green", "blue"];
console.log(colors.length);
console.log(colors[colors.length - 1]);
length يعدّ الخانات
colors.length يساوي ٣ لأن ثلاثة أسماء مخزّنة، والخانة الأخيرة colors[colors.length - 1] هي blue. تنقص واحدًا لأن أول فهرس صفر لا واحد. length خاصية ولا يقبل أقواس النداء.
let colors = ["red", "green", "blue"];
colors[1] = "gold";
console.log(colors[1]);
console.log(colors.length);
استبدال الخانة لا يغيّر العدد
colors[1] = "gold" يكتب فوق green. القراءة التالية لتلك الخانة تطبع gold. يبقى length على ٣. الخانة الموجودة تغيّرت، ولم تُضف خانة جديدة. الإضافة والحذف لدرس دوال المصفوفة.
let colors = ["red", "green", "blue"];
console.log(colors[9]);
console.log(colors.length);
الفهرس الفارغ ليس خانة جديدة
colors[9] لا يخزّن شيئًا، فالقراءة undefined وlength ما زال ٣. قراءة الخانة الفارغة لا تُطيل القائمة. الكتابة بعد النهاية تُكبّر الطول وتترك فجوات، وليست أداة هذه الصفحة.
let bag = ["red", 12, true];
console.log(bag[1]);
console.log(typeof bag[0]);
نوع واحد أوضح حين تستطيع
قد تحمل الخانة نصًا أو رقمًا أو boolean. bag[1] يطبع ١٢ وtypeof bag[0] يساوي string. قائمة الألوان أسهل من الكيس المختلط. اللغة لا تمنع الخلط.
أظهر اللون الأول في الصفحة
اقرأ الفهرس صفر واكتب ذلك النص في الفقرة. دع اللونين الآخرين داخل القائمة.
<!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. غيّر النص الأول داخل الأقواس فقط ثم حدّث الصفحة فيتبع السطر. اللونان الآخران يبقيان مخزّنين ولا يُكتبان في الفقرة.
خطوات التدريب
- ابنِ الألوان الثلاثة واقرأ الفهرس صفر، ثم اقرأ الطول وصل إلى اللون الأخير بطول ناقص واحد.
- اجعل الفهرس ١ يساوي
goldواقرأ تلك الخانة والطول. - اقرأ الفهرس ٩ وتأكد أن الطول ما زال ٣، وفي الكيس المختلط انظر إلى الرقم ونوع الخانة الأولى.
- في مثال HTML غيّر اللون الأول فقط، حدّث، واقرأ الفقرة.
زلات شائعة
- العدّ من واحد وإضاعة اللون الأول، واستدعاء
lengthبأقواس كأنه دالة - معاملة المصفوفة كنص
JSONوتمريرها إلىparse - توقّع أن مجرد قراءة فهرس فارغ يزيد
length، أو أن استبدال خانة يعني إضافة عنصر - البحث عن دوال المصفوفة في هذه الصفحة
الخلاصة
- المصفوفة قائمة حيّة داخل السكربت والأقواس المربّعة تبنيها
- الفهرس صفر هو أول عنصر
lengthيعدّ الخانات ولا يأخذ أقواس نداء- الكتابة على فهرس موجود تبدّل تلك الخانة، والقراءة بعد النهاية
undefinedمن غير أن يتغيّر الطول - العنصر الأول يملأ سطرًا في الصفحة، والدرس التالي دوال المصفوفة للإضافة والحذف
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى