English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الصناديق في JavaScript هي كائنات عالمية تستخدم لتخزين العديد من القيم في متغير واحد.
يمكن للصناديق أن تحتوي على أي نوع من البيانات، بما في ذلك الأسماء النصية، والأرقام، والأجهزة، والوظائف، حتى الصناديق الأخرى.
افترض أنك تريد تخزين أسماء المدن في كود JavaScript. قد تبدو عملية تخزين أسماء المدن واحدة تلو الأخرى مثل هذا:
let city1 = "New Delhi"; let city2 = "Mumbai"; let city3 = "Jaipur";
لكن إذا كنت بحاجة إلى تخزين أسماء المدن في دولة، فإن هذا يمكن أن يكون أكثر من ثلاثة، وربما مئة.
من الصعب جدًا استخدام العديد من المتغيرات ومتابعة جميع المتغيرات في نفس الوقت.
تحل صناديق JavaScript مشكلة تخزين العديد من القيم أو مجموعة القيم في متغير واحد من خلال بنية منظمة.
هناك طريقتان يمكن استخدامها لإنشاء صناديق في JavaScript:
مثبت-إنشاء غير مباشر، باستخدام الأقواس المربعة []
الطريقة المبسطة-مباشرة، باستخدام مفتاح new
لنشرح كيفية استخدامالصناديق الثابتةإنشاء fruitsالصناديق[]:
let fruits = ["Apple", "Mango", "Banana", "Orange"];اختبار النظر في‹/›
يمكن للإعلان أن يبدأ في سطر آخر:
let fruits = [ "Apple", "Mango", "Banana", "Orange" ;اختبار النظر في‹/›
الآن، إليك كيفية استخداموظيفة بناء الصناديقالبيانات التي تم إنشاؤها بنفس الطريقة، وهي تُستخدم لتعريف new Array():
let fruits = new Array("Apple", "Mango", "Banana", "Orange");اختبار النظر في‹/›
كلا الطريقتين ستقومان بإنشاء صناديق. ولكن،مثبت-إنشاء غير مباشرالطريقة باستخدام الأقواس المربعة [] أكثر شيوعًا واختيارًا لأنهاnew Array()قد يؤدي استخدام طريقة المصنع إلى نتائج غير متسقة ومفاجئة.
لا توجد أسماء/قيم للاعداد، بل تستخدم أرقامًا تتراوح من 0 كصناديق لها.
هذا هو مثال على القائمة التي يتم تخصيص fruits:
let fruits = ["Apple", "Mango", "Banana", "Orange"];
هذا هو تفكيك طريقة مؤشر كل عنصر في قائمة fruits:
0 | 1 | 2 | 3 |
---|---|---|---|
Apple | Mango | Banana | Orange |
العنصر الأول في القائمة هو "Apple"، والمؤشر هو 0.
العنصر الأخير هو "Orange"، والمؤشر هو 3.
من خلال تسمية مفتاح العنصر في البكارة يمكن الوصول إلى العناصر في القائمة.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits[0]; // يعود "Apple" fruits[2]; // يعود "Banana"اختبار النظر في‹/›
مؤشرات القوائم في JavaScript تبدأ من الصفر: مؤشر العنصر الأول في القائمة هو 0، العنصر الثاني هو 1، وهكذا.
بالمحاولة الوصول إلى عنصر غير موجود في القائمة، سيتم إرجاع undefined.
fruits[7]; // يعود undefinedاختبار النظر في‹/›
يمكن الوصول إلى القائمة بأكملها من خلال تسمية الاسم.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; document.getElementById("result").innerHTML = fruits;اختبار النظر في‹/›
يمكننا استخدامlengthتحدد الخاصية عدد العناصر في القائمة.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits.length; // يعود 4اختبار النظر في‹/›
مؤشر العنصر الأخير يساوي قيمة خاصية length الخاصة بالقائمة ناقص 1.
في هذا المثال، يستخدم خاصية length لعرض قيمة العنصر الأخير:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; let lastIndex = fruits.length - 1; fruits[lastIndex];اختبار النظر في‹/›
في متغير fruits، لدينا أربعة عناصر، بما في ذلك المؤشرات من 0 إلى 3. إذا كنت ترغب في إضافة عنصر جديد إلى القائمة، يمكنك تخصيص قيمة للمؤشر التالي.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits[4] = "Guava";اختبار النظر في‹/›
إذا أضفت عنصرًا وتم تجاوز مفتاح غير صحيح، سيتم إنشاء عنصر خالي ('') في القائمة.
fruits[6] = "Strawberry";اختبار النظر في‹/›
استخدامpush()يمكن أن تتجنب هذه المشاكل طريقة تضيف عنصرًا جديدًا إلى نهاية القائمة.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits.push("Strawberry");اختبار النظر في‹/›
يمكن أيضًا استخدامlengthالصفات تضيف عنصرًا جديدًا إلى القائمة.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits[fruits.length] = "Beer";اختبار النظر في‹/›
من خلال استخدام عمود التساوي التوزيع يمكننا تغيير أي قيمة في القائمة.
let fruits = ["Apple", "Mango", "Banana", "Orange"]; fruits[0] = "Monkey";اختبار النظر في‹/›
القوائم عادة ما تستخدم لجمع قوائم من نفس نوع البيانات، ولكن من الناحية التقنية، يمكن أن تحتوي على أي قيمة أو مجموعة من القيم.
دعنا نسمي myArray = [5, 22, "Arrow", "Bone", true, new Date()];اختبار النظر في‹/›
يمكننا استخداملـوlengthالخصائص لمرور عبر المصفوفة بأكملها.
في هذا المثال، قمنا بإنشاء مصفوفة من الفواكه ونقوم بطباعة كل معرف مقياس وكل قيمة في المستند:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; دعنا نسمي txt = ""; // مرور طول المصفوفة لـ(لـ(i = 0;i < fruits.length;i++) { txt += i + " = " + fruits[i] + "<br>"; }اختبار النظر في‹/›
يمكننا أيضًا استخدام ما يليArray.forEach()طريقة:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; دعنا نسمي result = document.getElementById("result"); fruits.forEach(function(element) { result.innerHTML += element + "<br>"; });اختبار النظر في‹/›
يمكننا أيضًا استخدامfor...ofالدورات لمرور عبر مصفوفة JavaScript، وهي ميزة جديدة في JavaScript:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; دعنا نسمي result = document.getElementById("result"); لـ(لـ(x في فruits) { result.innerHTML += x; }اختبار النظر في‹/›
for...ofالدورات لا تقوم بإرجاع معرفات عناصر المصفوفة، ولكنها عادة ما تكون طريقة أبسط وأكثر بساطة لمرور عبر المصفوفة.
المصفوفات المتعددة الأبعاد هي مصفوفات تحتوي على مصفوفات.
let points = [ [35, 28, 29, 31], [33, 24, 25, 29] ;
يمكن لـ JavaScript فهم مصفوفات متعددة الأبعاد من مستوى 2، 3، 4، 5 أو أكثر. ولكن، بالنسبة للكثيرين، من الصعب إدارة مصفوفات أكثر من ثلاثة مستويات.
عدد أبعاد المصفوفة يحدد عدد المعرفات المطلوبة لاختيار العنصر
للصفوف الثنائية الأبعاد، تحتاج إلى معرفتين لاختيار العنصر
للصفوف الثلاثية الأبعاد، تحتاج إلى ثلاثة معرفات لاختيار العنصر
يمكن اعتبار المصفوفة الثنائية الأبعاد كجدول، حيث الأول [ ] هو السطر، والثاني [ ] هو العمود.
نقاط[0][1]; // عودة 28 نقاط[1][0]; // عودة 33اختبار النظر في‹/›
في هذا المثال، قمنا بإنشاء مصفوفة ثنائية الأبعاد ونقوم بطباعة كل معرف مقياس وكل قيمة في المستند:
دعنا نسمي النقاط = [[35, 28, 29, 31], [33, 24, 25, 29]]; دعنا نسمي السطر; دعنا نسمي العمود; لـ(السطر = 0;السطر < 2;السطر++) { لـ(العمود = 0;العمود < 4;العمود++) { document.write(row, col, points[row][col]); } }اختبار النظر في‹/›
بالطبع، يمكنك أيضًا استخدامlengthالحصول على حجم الصف والعمود الخاص بالخصائص:
let points = [ [10, 12, 14, 16, 18], [20, 22, 24, 26], [30, 32, 34], [32, 34] ; points.length; // يعود 4 (عدد الصفوف الكلية) points[0].length; // يعود 5 points[1].length; // يعود 4 points[2].length; // يعود 3 points[3].length; // يعود 2اختبار النظر في‹/›
في معظم الحالات، تكفي مصفوفة ثنائية الأبعاد، رغم أن هناك أماكن يمكن استخدام فيها مصفوفة ثلاثية الأبعاد
في JavaScript، المصفوفة هي نوع خاص من الأجسام
عمود typeof في JavaScript يعود بالنسبة للعدد إلى "Object".
let fruits = ["Apple", "Mango", "Banana", "Orange"]; typeof fruits; // يعود "object"اختبار النظر في‹/›
لا تحتاج إلى استخدام بناء المصفوفة new Array()
على العكس من ذلك، يجب التشدد في استخدام الطريقة التلقائية لإنشاء المصفوفات، أي استخدام طريقة البكرة [] مباشرة، وهي طريقة أكثر شيوعًا وأكثر شعبية.
تُستخدم في النوعين التاليين لإنشاء مصفوفة جديدة تحتوي على اسم "scores":
let scores = new Array(); // لا ينصح بهذه الطريقة let scores = []; // الطريقة الموصى بها
تُستخدم في النوعين التاليين لإنشاء مصفوفة تحتوي على خمس أرقام جديدة:
let scores = new Array(2, 5, 10, 28, 10); // لا ينصح بهذه الطريقة let scores = [2, 5, 10, 28, 10]; // الطريقة الموصى بهااختبار النظر في‹/›
قد تكون هناك تباينات في طريقة بناء Array()، وقد تنتج بعض النتائج غير المتوقعة:
let scores = new Array(10, 25); // إنشاء مصفوفة تحتوي على عنصرين (10 و 25) let scores = new Array(10); // إنشاء مصفوفة تحتوي على 10 عناصر غير معرفةاختبار النظر في‹/›
كما تعلم،عمود typeof في لغة JavaScript يعود بالنسبة للعدد إلى "Object".
سؤال شائع هو:كيفية معرفة ما إذا كان المتغير مصفوفة؟
لحل هذه المشكلة، قام ECMAScript 5 بتعريف طريقة جديدةArray.isArray():
let fruits = ["Apple", "Mango", "Banana", "Orange"]; Array.isArray(fruits);اختبار النظر في‹/›
إذا تم إنشاء العنصر باستخدام بناء معين، فإنه يمكن أيضًا استخدام محدد instanceof لتحقيق true:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; if (fruits instanceof Array) { // statements to execute }اختبار النظر في‹/›
في المثال التالي، سنقوم بمرور المصفوفة إلى الدالة:
let fruits = ["Apple", "Mango", "Banana", "Orange"]; myFunc(fruits); function myFunc(arg) { for (let elem of arg) { document.write(elem, "<br>"); } }اختبار النظر في‹/›
في المثال التالي، سنقوم بإرجاع مصفوفة من الدالة:
function myFunc() { let fruits = ["Apple", "Mango", "Banana", "Orange"]; return fruits; } let myArray = myFunc(); document.write(myArray);اختبار النظر في‹/›