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 |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition.