Array.length
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Сводка
Свойство 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
с числовыми свойствами.
Атрибуты свойства Array.length |
|
---|---|
Записываемое | да |
Перечисляемое | нет |
Настраиваемое | нет |
Примеры
Пример: итерирование по массиву
В следующем примере массив 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;
}
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-properties-of-array-instances-length |
Совместимость с браузерами
BCD tables only load in the browser