--- title: Array.length slug: Web/JavaScript/Reference/Global_Objects/Array/length tags: - Array - JavaScript - Property translation_of: Web/JavaScript/Reference/Global_Objects/Array/length ---
Cвойство length
объекта, который является экземпляром типа Array
, устанавливает или возвращает число элементов этого массива. Значение данного свойства 32-битное безнаковое целое число, которое всегда численно больше чем самый наибольший индекс в массиве.
var items = ['shoes', 'shirts', 'socks', 'sweaters']; items.length; // возвращает 4
arr.length
Свойство length
является целым числом с положительным знаком и значением, меньшим чем 2 в степени 32 (232).
var namelistA = new Array(4294967296); //2 в 32 степени = 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; //устанавливает длину массива меньше 2 в 32 степени console.log(namelistB.length); //4294967295
В любой момент вы можете установить свойство length
для обрезки массива. Когда вы расширяете массив, изменяя его свойство length
, реальное количество элементов в массиве увеличивается; например, если вы установите свойство length
в 3, когда оно равно 2, массив будет из 3 элементов, где значение третьего элемента будет равно undefined
.
var arr = [1, 2, 3]; printEntries(arr); arr.length = 5; // устанавливает длину массива 5. 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
ничего не говорит о количестве определённых значений в массиве. Также смотрите раздел Взаимосвязь свойства length
с числовыми свойствами.
{{js_property_attributes(1, 0, 0)}}
В следующем примере массив numbers
итерируется до значения свойства length
, показывающего, сколько элементов содержит массив. Значение каждого элемента удваивается.
var numbers = [1, 2, 3, 4, 5]; for (var i = 0; i < numbers.length; i++) { numbers[i] *= 2; } // Массив numbers теперь равен [2, 4, 6, 8, 10];
Следующий пример сокращает массив statesUS
до длины в 50 элементов, если текущая длина массива больше 50.
if (statesUS.length > 50) { statesUS.length = 50; }
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 1-е издание. | Стандарт | Изначальное определение. |
{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Array.length")}}