Skip to main content

Массивы

Особая структура данных, которая называется массив(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 для массивов.

  1. Цикл for..in выполняет перебор всех свойств объекта, а не только цифровых.
  2. Цикл 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