Spec-Zone.ru › JavaScript

Array: length

Базовая версия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Свойство данных length экземпляра Array представляет количество слотов в этом массиве. Значение является беззнаковым 32-битным целым числом, которое всегда численно больше наивысшего индекса в массиве. Оно может быть больше количества элементов, если массив разреженный.

Попробуйте

const clothing = ["shoes", "shirts", "socks", "sweaters"];

console.log(clothing.length);
// Expected output: 4

Значение

Неотрицательное целое число меньше 232.

Атрибуты свойства Array: length
Записываемое да
Перечисляемое нет
Настраиваемое нет

Описание

Значение свойства length является неотрицательным целым числом со значением меньше 232.

const listA = [1, 2, 3];
const listB = new Array(6);

console.log(listA.length);
// 3

console.log(listB.length);
// 6

listB.length = 2 ** 32; // 4294967296
// RangeError: Invalid array length

const listC = new Array(-100); // Negative numbers are not allowed
// RangeError: Invalid array length

Объект массива отслеживает свойство length и автоматически синхронизирует значение length с содержимым массива. Это означает:

  • Установка length на значение меньше текущей длины усекает массив — элементы за пределами новой length удаляются.
  • Установка любого индекса массива (неотрицательное целое число меньше 232) за пределами текущей length расширяет массив — свойство length увеличивается, чтобы отразить новый наивысший индекс.
  • Установка length на недопустимое значение (например, отрицательное число или нецелое число) вызывает исключение RangeError.

Когда length устанавливается на значение больше текущей длины, массив расширяется путем добавления пустых слотов, а не фактических значений undefined. Пустые слоты имеют некоторые особые взаимодействия с методами массива; см. методы массива и пустые слоты.

const arr = [1, 2];
console.log(arr);
// [ 1, 2 ]

arr.length = 5; // set array length to 5 while currently 2.
console.log(arr);
// [ 1, 2, <3 empty items> ]

arr.forEach((element) => console.log(element));
// 1
// 2

См. также Связь между length и числовыми свойствами.

Примеры

Перебор массива

В следующем примере массив numbers перебирается путем просмотра свойства length. Значение в каждом элементе затем удваивается.

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

Сокращение массива

Следующий пример сокращает массив numbers до длины 3, если текущая длина больше 3.

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

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

console.log(numbers); // [1, 2, 3]
console.log(numbers.length); // 3
console.log(numbers[3]); // undefined; the extra elements are deleted

Создание пустого массива фиксированной длины

Установка length на значение больше текущей длины создает разреженный массив.

const numbers = [];
numbers.length = 3;
console.log(numbers); // [empty x 3]

Массив с незаписываемой длиной

Свойство length автоматически обновляется массивом при добавлении элементов за пределы текущей длины. Если свойство length сделано незаписываемым, массив не сможет его обновить. Это вызывает ошибку в строгом режиме.

"use strict";

const numbers = [1, 2, 3, 4, 5];
Object.defineProperty(numbers, "length", { writable: false });
numbers[5] = 6; // TypeError: Cannot assign to read only property 'length' of object '[object Array]'
numbers.push(5); // // TypeError: Cannot assign to read only property 'length' of object '[object Array]'

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-properties-of-array-instances-length

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
length
1
12
1
4
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0

См. также

  • Руководство по индексированным коллекциям
  • Array
  • TypedArray.prototype.length
  • String: length
  • RangeError: invalid array length

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API