Индексы массива в JavaScript

Индекс массива - это номер элемента. По этому номеру можно получить нужное значение из массива.

let fruits = ['apple', 'orange', 'banana'];

console.log(fruits[0]); // apple

Индекс записывается в квадратных скобках после имени массива.

Что такое индекс

Массив хранит элементы в определенном порядке. У каждого элемента есть свой номер.

let colors = ['red', 'green', 'blue'];

У этого массива такие индексы:

0 -> red
1 -> green
2 -> blue

Индекс не хранится внутри элемента как отдельное значение. Это способ обратиться к элементу по его позиции в массиве.

Нумерация с нуля

В JavaScript первый элемент массива имеет индекс 0, а не 1.

let users = ['Анна', 'Олег', 'Мария'];

console.log(users[0]); // Анна
console.log(users[1]); // Олег
console.log(users[2]); // Мария

Это важно запомнить сразу: если в массиве три элемента, их индексы будут 0, 1 и 2.

Последний индекс обычно на единицу меньше длины массива.

let users = ['Анна', 'Олег', 'Мария'];

console.log(users.length); // 3
console.log(users.length - 1); // 2

Получить элемент по индексу

Чтобы получить элемент, нужно указать индекс в квадратных скобках.

let languages = ['HTML', 'CSS', 'JavaScript'];

console.log(languages[2]); // JavaScript

Так можно использовать значение в условии, функции или другой части программы.

let roles = ['admin', 'editor', 'user'];
let currentRole = roles[0];

console.log(currentRole); // admin

Через индекс можно не только читать элемент, но и заменить его.

let roles = ['admin', 'editor', 'user'];

roles[1] = 'author';

console.log(roles); // ['admin', 'author', 'user']

Несуществующий индекс

Если обратиться к индексу, которого нет в массиве, JavaScript вернет undefined.

let fruits = ['apple', 'orange'];

console.log(fruits[5]); // undefined

Код при этом не остановится. Но чаще всего undefined означает, что индекс посчитан неправильно или в массиве меньше элементов, чем ожидалось.

Последний элемент массива

Чтобы получить последний элемент, можно использовать length - 1.

let fruits = ['apple', 'orange', 'banana'];
let lastIndex = fruits.length - 1;

console.log(fruits[lastIndex]); // banana

Можно записать короче, без отдельной переменной.

let fruits = ['apple', 'orange', 'banana'];

console.log(fruits[fruits.length - 1]); // banana

Если массив пустой, последнего элемента в нем нет.

let fruits = [];

console.log(fruits[fruits.length - 1]); // undefined

Отрицательные индексы

В обычной записи через квадратные скобки отрицательный индекс не означает отсчет с конца массива.

let fruits = ['apple', 'orange', 'banana'];

console.log(fruits[-1]); // undefined

Чтобы получить элемент с конца массива, используют метод at().

let fruits = ['apple', 'orange', 'banana'];

console.log(fruits.at(-1)); // banana
console.log(fruits.at(-2)); // orange

at(-1) возвращает последний элемент, at(-2) - предпоследний.

Индекс в переменной

Индекс не обязательно писать числом прямо в скобках. Его можно хранить в переменной.

let users = ['Анна', 'Олег', 'Мария'];
let index = 1;

console.log(users[index]); // Олег

Это удобно, когда индекс получается в результате вычислений.

let users = ['Анна', 'Олег', 'Мария'];
let lastIndex = users.length - 1;

console.log(users[lastIndex]); // Мария

Итого

Индекс помогает обратиться к элементу массива по его позиции.

  • Нумерация элементов начинается с 0.
  • Элемент получают через квадратные скобки: array[index].
  • Последний индекс равен array.length - 1.
  • Если элемента с таким индексом нет, результатом будет undefined.
  • Для отсчета с конца массива удобно использовать at().