Массивы
Особая структура данных, которая называется массив(Array) - это упорядоченная коллекция данных.
let arr = new Array();
let arr = [];
Получение последних элементов при помощи «at»
let fruits = ["Apple", "Orange", "Plum"];
// то же самое, что и fruits[fruits.length-1]
alert( fruits.at(-1) ); // Plum
Другими словами, arr.at(i):
- это ровно то же самое, что и arr[i], если i >= 0.
- для отрицательных значений i, он отступает от конца массива.
Методы pop/push, shift/unshift
push- Добавляет элемент в конец массиваpop- Удаляет последний элемент из массива и возвращает егоshift- Удаляет из массива первый элемент и возвращает егоunshift- Добавляет элемент в начало массива
Методы push и unshift могут добавлять сразу несколько элементов
Методы push/pop выполняются быстро, а методы shift/unshift – медленно.
Чтобы пройтись по элементам массива:
- for (let i=0; i<arr.length; i++) – работает быстрее всего, совместим со старыми браузерами.
- for (let item of arr) – современный синтаксис только для значений элементов (к индексам нет доступа).
- for (let i in arr) – никогда не используйте для массивов!
💥 Не следует использовать цикл for..in для массивов.
- Цикл for..in выполняет перебор всех свойств объекта, а не только цифровых.
- Цикл for..in оптимизирован под произвольные объекты, не массивы, и поэтому в 10-100 раз медленнее.
Ещё один интересный факт о свойстве length – его можно перезаписать.
Cамый простой способ очистить массив – это arr.length = 0;
let arr = [1, 2, 3, 4, 5];
arr.length = 2; // укорачиваем до двух элементов
alert( arr ); // [1, 2]
arr.length = 5; // возвращаем length как было
alert( arr[3] ); // undefined: значения не восстановились
new Array()
let arr = new Array("Яблоко", "Груша", "и тд");
Если new Array вызывается с одним аргументом, который представляет собой число, он создаёт массив без элементов, но с заданной длиной.
Многомерные массивы
Массивы могут содержать элементы, которые тоже являются массивами. Это можно использовать для создания многомерных массивов, например, для хранения матриц
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // 5, центральный элемент
Не сравнивайте массивы при помощи ==
В JavaScript, в отличие от некоторых других языков программирования, массивы не следует сравнивать при помощи оператора ==.
У этого оператора нет специального подхода к массивам, он работает с ними, как и с любыми другими объектами. Итак, если мы всё же сравниваем массивы с помощью ==, то они никогда не будут одинаковыми, если только мы не сравним две переменные, которые ссылаются на один и тот же массив Вместо этого сравните их по элементам в цикле или используя методы итерации.
🚀 Источник: https://learn.javascript.ru/array