Массивы
- Коллекция данных (однотипных чаще)
- Когда большое количество однотипных данных, вместо большого количества переменных удобнее создавать массивы.
- Часто в структурах данных используют массивы объектов.
- Массивы по типу объекты (как и всё в JS), поэтому синтаксис в добавлении\удалении элементов через точку. Значения массива записываются в через запятую.
- В массивах можно хранить даже функции, но это считается плохой практикой
[]; // пустой массив
typeof []; // 'object'
Boolean([]); // true
const someArray = [0, 1, 2];
// массив объектов
const data = [{...}, {...}, {...}];
// проверка на массив
Array.isArray([]); // true
Array.isArray('abc'); // false
Простые операции с массивами
Создать массив
// простая запись
const someArray = [0, 1, 2];
// через функцию-конструктор new
const someArray2 = new Array(0, 1, 2);
// если аргумент 1, то это будет длина массива с пустыми элементами
const someArray2 = new Array(12);
Создать массив и наполнить.
const a = new Array(5).fill('some-value');
const b = [...Array(100).keys()]; // [0, 1, 2, 3, 4, ..., 100]
Длина (length)
Это по сути индекс последнего элемента минус один.
const someArray = [0, 1, 2];
someArray.length; // 3
Вывести элемент по индек су
Нумерация индексов массива начинается с нуля. Индекс - порядковый номер.
const someArray = [0, 1, 2];
// Первый элемент
someArray[0]; // 0
// Несуществующий элемент
someArray[4]; // undefined
// Последний элемент
someArray[someArray.length - 1]; // 2
Изменить существующий элемент
const someArray = [0, 1, 2];
someArray[0] = 3;
console.log(someArray); // [3, 1, 2]
Добавить элемент (push, unshift)
Через индекс
const someArray = [0, 1, 2];
someArray[3] = 3;
console.log(someArray); // [0, 1, 2, 3]
Добавить элемент в конец массива (push). Меняет исходный массив.
const someArray = [0, 1, 2];
// 1-ый способ
someArray.push(3);
console.log(someArray); // [0, 1, 2, 3]
// 2-й способ
someArray[someArray.length] = 4;
console.log(someArray); // [0, 1, 2, 3, 4]
Добавить элемент в начало массива (unshift). Меняет исходный массив.
const someArray = [0, 1, 2];
someArray.unshift(3);
console.log(someArray); // [3, 0, 1, 2]
Удалить элемент
shift() - удалить первый элемент
Изменяет исходный массив. Удалить элемент в