Индексы массива в 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().