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;
С этой темой смотрят: