Длина массива в JavaScript

Длина массива показывает, сколько элементов находится в массиве. Для этого используют свойство 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, элементы в конце массива будут удалены.
  • Длина массива технически считается как последний индекс плюс один.