Array.prototype.length

من موسوعة حسوب

الخاصية Array.prototype.length تُعيد عدد العناصر في المصفوفة، وهذه القيمة هي عدد صحيح بطول 32 بت دون إشارة، وهي أكبر من أكبر فهرس في المصفوفة.

var items = ['shoes', 'shirts', 'socks', 'sweaters'];
items.length; // 4

الوصف

قيمة الخاصية length هي عددٌ صحيحٌ له إشارة موجبة وقيمته تكون من 2 إلى 232.

var namelistA = new Array(4294967296); //2 to the 32nd power = 4294967296 
var namelistC = new Array(-100) // رقم سالب

console.log(namelistA.length); //RangeError: Invalid array length 
console.log(namelistC.length); //RangeError: Invalid array length 



var namelistB = []; 
namelistB.length = Math.pow(2,32)-1;
console.log(namelistB.length); 

//4294967295

يمكنك ضبط الخاصية length لتقليل عدد عناصر المصفوفة في أيّ وقت، وعندما نزيد قيمة الخاصية length فسيزداد عدد العناصر الفعلية في المصفوفة، فمثلًا لو ضبطنا قيمة الخاصية length إلى 3 عندما تكون قيمتها الحالية 2، فستصبح المصفوفة تحتوي على 3 عناصر، مما يجعل قيمة العنصر الثالث هي undefined.

var arr = [1, 2, 3];
printEntries(arr);

arr.length = 5; // ضبط قيمة الخاصية إلى 5 مع أن عدد العناصر هو 3
printEntries(arr);

function printEntries(arr) {
  var goNext = true;
  var entries = arr.entries();
  while (goNext) {
    var result = entries.next();
    if (result.done !== true) {
      console.log(result.value[1]);
      goNext = true;
    } else
      goNext = false;
  }
  console.log('=== printed ===');
}

// 1
// 2
// 3
// === printed ===
// 1
// 2
// 3
// undefined
// undefined
// === printed ===

لكن اعلم أنَّ الخاصية length لا تُشير بالضرورة إلى عدد القيم المُعرَّفة في المصفوفة.

أمثلة

المرور على عناصر المصفوفة في حلقة تكرار

في المثال الآتي، سنمر على المصفوفة number عبر حلقة التكرار for بالاستفادة من قيمة الخاصية length، لاحظ أنَّ قيمة كل عنصر ستتضاعف:

var numbers = [1, 2, 3, 4, 5];
var length = numbers.length;
for (var i = 0; i < length; i++) {
  numbers[i] *= 2;
}
// numbers: [2, 4, 6, 8, 10]

تقليل عدد عناصر المصفوفة

المثال الآتي يقلل عدد عناصر المصفوفة number إلى 3، مما يؤدي إلى حذف آخر عنصرين فيها:

var numbers = [1, 2, 3, 4, 5];

if (numbers.length > 3) {
  numbers.length = 3;
}

console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات