English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسيات JavaScript

كائنات JavaScript

وظائف JavaScript

JS HTML DOM

BOM للمتصفح JS

دليل أساسيات AJAX

دليل JavaScript

مثل جافا سكريبت Array (مجموعة)

الصناديق في 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:

0123
AppleMangoBananaOrange

العنصر الأول في القائمة هو "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 الخاصة بالقائمة

يمكننا استخدام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 هي جسم

في JavaScript، المصفوفة هي نوع خاص من الأجسام

عمود typeof في JavaScript يعود بالنسبة للعدد إلى "Object".

let fruits = ["Apple", "Mango", "Banana", "Orange"];
typeof fruits; // يعود "object"
اختبار النظر في‹/›

تجنب استخدام new Array()

لا تحتاج إلى استخدام بناء المصفوفة 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 عناصر غير معرفة
اختبار النظر في‹/›

كيفية التحقق مما إذا كانت المتغير متجهًا - Array.isArray()

كما تعلم،عمود 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);
اختبار النظر في‹/›