Длина массива в JavaScript
- Свойство length
- Пустой массив
- Длина меняется автоматически
- Последний индекс
- Изменение length вручную
- Длина и пустые места
- Итого
Длина массива показывает, сколько элементов находится в массиве. Для этого используют свойство length.
let fruits = ['apple', 'orange', 'banana'];
console.log(fruits.length); // 3
Свойство length
length - это свойство массива. Его записывают через точку после имени массива.
let numbers = [10, 20, 30, 40];
console.log(numbers.length); // 4
В этом массиве четыре элемента, поэтому length возвращает 4.
Само свойство length не является методом, поэтому круглые скобки не нужны.
let users = ['Анна', 'Олег'];
console.log(users.length); // правильно
Пустой массив
У пустого массива длина равна 0.
let users = [];
console.log(users.length); // 0
Это удобно использовать в проверках.
let users = [];
if (users.length === 0) {
console.log('Пользователей пока нет');
}
Длина меняется автоматически
Когда в массив добавляют элементы, значение length обновляется само.
let fruits = ['apple'];
console.log(fruits.length); // 1
fruits.push('orange');
console.log(fruits.length); // 2
То же самое происходит при удалении элементов.
let fruits = ['apple', 'orange', 'banana'];
fruits.pop();
console.log(fruits.length); // 2
Обычно не нужно отдельно пересчитывать длину массива. JavaScript делает это автоматически.
Последний индекс
Индексы массива начинаются с 0, поэтому последний индекс равен length - 1.
let fruits = ['apple', 'orange', 'banana'];
console.log(fruits.length); // 3
console.log(fruits.length - 1); // 2
Через это значение можно получить последний элемент массива.
let fruits = ['apple', 'orange', 'banana'];
console.log(fruits[fruits.length - 1]); // banana
Если массив пустой, выражение fruits.length - 1 даст -1, а элемента с таким индексом нет.
let fruits = [];
console.log(fruits[fruits.length - 1]); // undefined
Изменение length вручную
length можно изменить вручную, но делать это нужно аккуратно.
Если уменьшить длину, лишние элементы будут удалены.
let numbers = [10, 20, 30, 40];
numbers.length = 2;
console.log(numbers); // [10, 20]
Если установить длину 0, массив станет пустым.
let numbers = [10, 20, 30];
numbers.length = 0;
console.log(numbers); // []
Такой способ иногда используют для очистки массива, но в обычном учебном коде чаще проще создать новый пустой массив.
let numbers = [];
Длина и пустые места
Обычно length совпадает с количеством элементов. Но технически длина массива - это последний индекс плюс один.
let numbers = [];
numbers[5] = 100;
console.log(numbers.length); // 6
console.log(numbers[0]); // undefined
В массив добавили элемент с индексом 5, поэтому длина стала 6. Индексы от 0 до 4 при этом не получили обычных значений.
Такой массив называют разреженным. На старте лучше не создавать такие массивы специально: с ними легче запутаться.
Итого
length показывает длину массива и обновляется автоматически.
array.lengthвозвращает длину массива.- У пустого массива длина равна
0. - Последний индекс равен
array.length - 1. - Если уменьшить
length, элементы в конце массива будут удалены. - Длина массива технически считается как последний индекс плюс один.