2. Основные методы массивов


1. Добавление/удаление элементов

push() - добавляет элемент в конец массива

let fruits = ["яблоко", "банан"];
fruits.push("апельсин");
console.log(fruits); // ["яблоко", "банан", "апельсин"]

pop() - удаляет последний элемент и возвращает его

let fruits = ["яблоко", "банан", "апельсин"];
let lastFruit = fruits.pop();
console.log(lastFruit); // "апельсин"
console.log(fruits); // ["яблоко", "банан"]

unshift() - добавляет элемент в начало массива

let fruits = ["банан", "апельсин"];
fruits.unshift("яблоко");
console.log(fruits); // ["яблоко", "банан", "апельсин"]

shift() - удаляет первый элемент и возвращает его

let fruits = ["яблоко", "банан", "апельсин"];
let firstFruit = fruits.shift();
console.log(firstFruit); // "яблоко"
console.log(fruits); // ["банан", "апельсин"]

2. Преобразование массива

join() - объединяет все элементы в строку

let fruits = ["яблоко", "банан", "апельсин"];
let str = fruits.join(", ");
console.log(str); // "яблоко, банан, апельсин"
console.log(fruits.join("-")); // "яблоко-банан-апельсин"

toString() - преобразует массив в строку

let fruits = ["яблоко", "банан", "апельсин"];
console.log(fruits.toString()); // "яблоко,банан,апельсин"

concat() - объединяет массивы

let fruits = ["яблоко", "банан"];
let vegetables = ["морковь", "картофель"];
let food = fruits.concat(vegetables);
console.log(food); // ["яблоко", "банан", "морковь", "картофель"]

// Можно объединять несколько массивов
let moreFood = fruits.concat(vegetables, ["лук", "чеснок"]);

3. Извлечение части массива

slice() - возвращает новый массив с частью элементов

let fruits = ["яблоко", "банан", "апельсин", "виноград", "груша"];

console.log(fruits.slice(1, 3)); // ["банан", "апельсин"] (с 1 по 3, не включая 3)
console.log(fruits.slice(2)); // ["апельсин", "виноград", "груша"] (со 2 до конца)
console.log(fruits.slice(-2)); // ["виноград", "груша"] (последние 2 элемента)
console.log(fruits.slice()); // копия всего массива

splice() - изменяет массив, удаляя или добавляя элементы

let fruits = ["яблоко", "банан", "апельсин", "виноград"];

// Удаление элементов
let removed = fruits.splice(1, 2); // удалить 2 элемента начиная с индекса 1
console.log(removed); // ["банан", "апельсин"]
console.log(fruits); // ["яблоко", "виноград"]

// Добавление элементов
fruits.splice(1, 0, "груша", "киви"); // добавить элементы начиная с индекса 1
console.log(fruits); // ["яблоко", "груша", "киви", "виноград"]

// Замена элементов
fruits.splice(2, 1, "банан"); // заменить 1 элемент начиная с индекса 2
console.log(fruits); // ["яблоко", "груша", "банан", "виноград"]

4. Поиск в массиве

indexOf() - ищет элемент и возвращает его индекс

let fruits = ["яблоко", "банан", "апельсин", "банан"];
console.log(fruits.indexOf("банан")); // 1 (первое вхождение)
console.log(fruits.indexOf("виноград")); // -1 (не найден)
console.log(fruits.indexOf("банан", 2)); // 3 (поиск начиная с индекса 2)

lastIndexOf() - ищет элемент с конца

let fruits = ["яблоко", "банан", "апельсин", "банан"];
console.log(fruits.lastIndexOf("банан")); // 3

includes() - проверяет, есть ли элемент в массиве

let fruits = ["яблоко", "банан", "апельсин"];
console.log(fruits.includes("банан")); // true
console.log(fruits.includes("виноград")); // false

5. Сортировка

sort() - сортирует массив (по умолчанию как строки)

let fruits = ["банан", "апельсин", "яблоко", "виноград"];
fruits.sort();
console.log(fruits); // ["апельсин", "банан", "виноград", "яблоко"]

// Для чисел нужна функция сравнения
let numbers = [40, 1, 5, 200];
numbers.sort(); // неправильно: [1, 200, 40, 5]
numbers.sort((a, b) => a - b); // правильно: [1, 5, 40, 200]

reverse() - переворачивает массив

let fruits = ["яблоко", "банан", "апельсин"];
fruits.reverse();
console.log(fruits); // ["апельсин", "банан", "яблоко"]

6. Проверка типа

Array.isArray() - проверяет, является ли значение массивом

console.log(Array.isArray([1, 2, 3])); // true
console.log(Array.isArray("текст")); // false
console.log(Array.isArray({})); // false