We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Сводка

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;
}

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

Спецификация Статус Комментарий
ECMAScript 1-е издание. Стандарт Изначальное определение.
ECMAScript 5.1 (ECMA-262)
Определение 'Array.length' в этой спецификации.
Стандарт  
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Array.length' в этой спецификации.
Стандарт  

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Метки документа и участники

Метки: 
Внесли вклад в эту страницу: JorJeG, Mingun
Обновлялась последний раз: JorJeG,