انتقل إلى المحتوى

٣.٩ ملخص

المصفوفات

المصفوفة قائمة عناصر تُكتب بين []، ويمكن أن تضم أنواع بيانات مختلفة.

var arr1 = [1, 2, 3];
var arr2 = [false, 1, "hello"];
var arr3 = ["a", "b", "c", "d"];

نصل إلى عنصر بكتابة فهرسه بين قوسين مربعين. يبدأ الفهرس من 0، ثم 1، ثم 2، وهكذا.

var colors = ["red", "white", "green"];
console.log(colors[0]); //red
console.log(colors[1]); //white
console.log(colors[2]); //green

array.length تُرجع طول المصفوفة.

var arr1 = [1, 2, 3];
console.log(arr1.length); //3

تعديل المصفوفات

إضافة عناصر إلى مصفوفة

array.push(item) تضيف عنصرًا إلى نهاية المصفوفة.

array.unshift(item) تضيف عنصرًا إلى بداية المصفوفة.

استخدم array[position]=value لإضافة عنصر عند فهرس محدّد.

var arr = [1, 2, 3, 4];

arr.push(5); //[1, 2, 3, 4, 5]
arr.unshift(0); //[0, 1, 2, 3, 4, 5]
arr[6] = 6; //[0, 1, 2, 3, 4, 5, 6]

حذف عناصر من مصفوفة

array.pop() تحذف آخر عنصر من المصفوفة.

array.shift() تحذف أول عنصر من المصفوفة.

var arr = [1, 2, 3, 4];

arr.pop(); //[1, 2, 3]
arr.shift(0); //[2, 3]

عرض عناصر المصفوفة

يمكن عرض عناصر المصفوفة باستخدام:

  1. for .
  2. for...of .
  3. forEach() وهي طريقة مساعدة للمصفوفات.
var colors = ["red", "green", "white", "black"];

//for loop
for(var i =0; i < colors.length; i++){
  console.log(colors[i]);
}

//for...of
for(color of colors){
  console.log(color);
}

//forEach helper
colors.forEach(function(current){
  console.log(current);
});

الدوال المساعدة للمصفوفات

map()

باستخدام array.map()يمكن إنشاء مصفوفة جديدة دون تعديل الأصلية في هذا المثال.

array.map() تستقبل دالة وتُرجع مصفوفة جديدة.

تستقبل الدالة ثلاثة معاملات كحد أقصى:

  1. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  2. index: فهرس العنصر الحالي، ويمكن إغفاله.
  3. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.map(num => num + 1);
//[2, 3, 4]

filter()

باستخدام array.filter()يمكن إنشاء مصفوفة جديدة تضم العناصر التي تحقق شرط الدالة، دون تغيير الأصلية.

array.filter() تستقبل دالة وتُرجع مصفوفة جديدة.

تستقبل الدالة ثلاثة معاملات كحد أقصى:

  1. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  2. index: فهرس العنصر الحالي، ويمكن إغفاله.
  3. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.filter(num => num >= 2);
//[2, 3]

every()

باستخدام array.every()يمكننا التحقّق مما إذا كانت جميع عناصر المصفوفة تحقق شرطًا معيّنًا.

array.every() تستقبل دالة وتُرجع true أو false.

تستقبل الدالة ثلاثة معاملات كحد أقصى:

  1. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  2. index: فهرس العنصر الحالي، ويمكن إغفاله.
  3. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.every(num => num > 0);
//true

some()

باستخدام array.some()يمكننا التحقّق مما إذا كانت عنصر واحد على الأقل من المصفوفة يحقق شرطًا محدّدًا.

array.some() تستقبل دالة وتُرجع true أو false.

تستقبل الدالة ثلاثة معاملات كحد أقصى:

  1. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  2. index: فهرس العنصر الحالي، ويمكن إغفاله.
  3. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.some(num => num < 0);
//false

find()

باستخدام array.find()يمكننا استرجاع أول عنصر يحقق الشرط.

array.find() تستقبل دالة وتُرجع قيمة أول عنصر يحقق الشرط.

تستقبل الدالة ثلاثة معاملات كحد أقصى:

  1. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  2. index: فهرس العنصر الحالي، ويمكن إغفاله.
  3. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.find(num => num > 0);
//1

reduce()

باستخدام array.reduce()يمكننا اختزال المصفوفة إلى قيمة واحدة.

array.reduce() تستقبل دالة وقيمة ابتدائية اختيارية، وتُرجع النتيجة النهائية للتجميع.

تستقبل الدالة أربعة معاملات كحد أقصى:

  1. previousValue: القيمة التراكمية المُرجعة من الاستدعاء السابق، وهي مستخدمة هنا.
  2. currentValue: العنصر الحالي، وهو المعامل المستخدم هنا.
  3. index: فهرس العنصر الحالي، ويمكن إغفاله.
  4. array: المصفوفة نفسها، ويمكن إغفالها.

مثال:

var numbers = [1, 2, 3];
var result = numbers.reduce((sum, val) => sum + val);
//6

عامل النشر (Spread)

يفكّ عامل النشر ... عناصر المصفوفة إلى قيم منفردة.

استخدامات عامل النشر:

  1. دمج المصفوفات.
  2. إنشاء نسخ سطحية من المصفوفات.
  3. تمرير عناصر المصفوفة إلى الدوال الرياضية

أمثلة:

//combine two arrays
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr1arr2 = [...arr1, ...arr2]; //[1, 2, 3, 4, 5, 6]

//copying an array
var arr3 = [1, 2];
var arr4 = [...arr3]; // [1, 2]

//in math functions
var arr5 = [5, 6, 7];
var arr5Min = Math.min(...arr5); //5
var arr5Max = Math.max(...arr5); //7

طرائق مفيدة للمصفوفات

isArray()

Array.isArray(arr) تُرجع true إذا كانت arr مصفوفة؛ وإلا تُرجع false.

مثال:

var numbers = [1, 2, 3];
var result = Array.isArray(numbers); //true

reverse()

arr.reverse() تعكس ترتيب عناصر المصفوفة arr. arr.reverse() وتُعدّل المصفوفة الأصلية.

مثال:

var numbers = [1, 2, 3];
numbers.reverse(); //[3, 2, 1]

sort()

arr.sort() تُرجع المصفوفة بعد ترتيبها. arr.sort() وتُعدّل المصفوفة الأصلية.

مثال:

var numbers = [5, 7, 4, 1];
numbers.sort(); //[1, 4, 5, 7]