Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

JavaScript: Свойство length

Если элементы добавлялись в массив без пропусков, в порядке возрастания индекса (когда каждый элемент массива имеет индекс на единицу больше предыдущего), то с помощью свойства length можно узнать количество элементов в массиве. При добавлении новых элементов в массив, свойство length автоматически обновляется:

var arr = [];
alert(arr.length);   // 0

arr[0] = 23;
alert(arr.length);   // 1

arr[1] = 13;
alert(arr.length);   // 2

Свойство length в качестве значения содержит число, равное последнему (самому большому) используемому индексу + 1. Поэтому, если индексы элементам массива присваивать в произвольном порядке, свойство length не имеет смысла использовать для определения количества элементов:

var arr = [];
arr[99] = "строка";   // Добавляем один элемент под индексом 99

alert(arr.length);    // 100

Наиболее часто свойство length используется для перебора элементов массива в циклах:

var fruits = ["яблоко", "банан", "клубника", "персик"];

for(let i = 0; i < fruits.length; i++)
  alert(fruits[i]);

С помощью свойства length можно укорачивать массив с конца, для этого свойству присваивается значение, меньшее чем длина массива:

var arr = [1,2,3];
arr.length = 1;
alert(arr[1]);   // undefined. Остался только элемент под индексом 0

Если конструктору Array в качестве аргумента передать только один числовой аргумент, то будет создан пустой массив, у которого значение свойства length равно переданному в конструктор числу:

var arr = new Array(15);
alert(arr.length);   // 15

Тоже самое можно сделать, создав массив с помощью литерала и явно присвоив свойству length значение:

var arr = [];
arr.length = 15;
alert(arr.length);   // 15

Примечание: присваивание свойству length произвольного значения, не добавляет в массив новых элементов, а просто изменяет значение свойства. В этом можно убедиться на простом примере:

var arr = [];
arr.length = 15;

alert("0" in arr);   // false
arr[0] = undefined;
alert("0" in arr);   // true

Так как свойство length в качестве значения содержит число, равное последнему (самому большому) используемому индексу + 1, его можно использовать в качестве индекса при добавлении новых элементов, вместо явного указания индекса:

arr = [];
arr[arr.length] = 2;
arr[arr.length] = 34;
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2018 © puzzleweb.ru

Реклама на сайте | puzinfo@puzzleweb.ru