hexlet-courses
October 1, 2020

2 Синтаксис

Массивом в программировании представляют любые упорядоченные наборы (или коллекции) элементов, будь то курсы на Хекслете, студенты в группе или друзья в вашей любимой социальной сети. Задача массива представить такие коллекции в виде единой структуры, которая позволяет работать с ними как с единым целым.

Определение массива

// Создание пустого массива
const items = [];

// Создание массива с тремя элементами
const animals = ['cats', 'dogs', 'birds'];

В примере происходит определение массива ['cats', 'dogs', 'birds'], который затем присваивается константе animals.

Обратите внимание на именование констант, содержащих массивы. Они во множественном числе. Это подчеркивает природу константы и делает код проще для анализа.

Получение данных

Элементы в массиве упорядочены слева направо. Каждый элемент имеет порядковый номер, называемый индексом. Индексация массива начинается с нуля. То есть первый элемент массива доступен по индексу 0, второй — по индексу 1 и так далее... Для извлечения элемента из массива по индексу используется особый синтаксис:

const animals = ['cats', 'dogs', 'birds'];
animals[0]; // 'cats'
animals[1]; // 'dogs'
// Последний индекс в массиве всегда меньше размера массива на единицу.
// В этом массиве три элемента, но последний индекс равен двум
animals[2]; // 'birds'

Узнать размер массива можно, обратившись к его свойству length.

const animals = ['cats', 'dogs', 'birds'];
// У массивов много других свойств и методов, с которыми мы познакомимся в процессе прохождения курсов.
animals.length; // 3

В реальных задачах индекс часто вычисляется динамически, поэтому обращение к конкретному элементу происходит с использованием переменных:

let i = 1;
const animals = ['cats', 'dogs', 'birds'];
animals[i]; // 'dogs'

И даже так:

let i = 1;
let j = 1;
const animals = ['cats', 'dogs', 'birds'];
animals[i + j]; // 'birds'

Такой вызов возможен по одной простой причине — внутри скобок ожидается выражение. А там, где ожидается выражение, можно подставлять всё, что вычисляется. В том числе вызовы функций:

const getIndexOfSecondElement = () => 1;
const animals = ['cats', 'dogs', 'birds'];
animals[getIndexOfSecondElement()]; // 'dogs'

Довольно часто, в задачах с использованием массивов, нужно взять последний элемент. Для этого вычисляется последний индекс массива по формуле размер_массива - 1, по которому и можно обратиться к последнему элементу:

const animals = ['cats', 'dogs', 'birds'];
animals[animals.length - 1]; // 'birds'