Методы массивов
Массив редко остаётся неизменным: в корзину добавляют товары, из очереди забирают задачи. Для этого у массивов есть встроенные методы. Метод — это функция, которая принадлежит значению и вызывается через точку: colors.push().
push и pop
push() добавляет элемент в конец массива, а pop() удаляет последний элемент и возвращает его:
const cart = ['хлеб', 'молоко'];
cart.push('сыр');
console.log(cart.join(', ')); // хлеб, молоко, сырconst cart = ['хлеб', 'молоко', 'сыр'];
const last = cart.pop();
console.log(last); // сыр
console.log(cart.join(', ')); // хлеб, молокоunshift и shift
Те же действия с началом массива выполняют unshift() — добавить в начало — и shift() — убрать первый элемент:
const queue = ['Анна', 'Олег'];
queue.unshift('Ира');
const first = queue.shift();
console.log(first); // Ира
console.log(queue.join(', ')); // Анна, ОлегТак устроена очередь: новые встают в конец через push(), а обслуживают первого через shift().
slice — копия части
slice(начало, конец) возвращает новый массив из элементов с индекса «начало» до индекса «конец», не включая его. Исходный массив не меняется:
const letters = ['a', 'b', 'c', 'd', 'e'];
console.log(letters.slice(1, 3).join(', ')); // b, c
console.log(letters.slice(-2).join(', ')); // d, e
console.log(letters.length); // 5Без аргументов slice() создаёт копию всего массива.
splice — удаление и вставка
splice(начало, сколько) удаляет элементы прямо из массива. После количества можно перечислить элементы, которые встанут на место удалённых:
const letters = ['a', 'b', 'c', 'd'];
letters.splice(1, 2, 'X');
console.log(letters.join(', ')); // a, X, dconcat и join
concat() соединяет массивы в новый, а join() превращает массив в строку:
const fruits = ['яблоко', 'груша'];
const berries = ['малина'];
const all = fruits.concat(berries);
console.log(all.join(' + ')); // яблоко + груша + малина| Метод | Что делает | Меняет массив |
|---|---|---|
push() / pop() | добавляет / убирает в конце | да |
unshift() / shift() | добавляет / убирает в начале | да |
splice() | удаляет и вставляет | да |
slice() | копирует часть | нет |
concat() | соединяет массивы | нет |
Частая ошибка
Названия slice и splice похожи, и их легко перепутать. slice() безопасен — он только копирует, а splice() вырезает элементы из исходного массива:
const numbers = [1, 2, 3, 4];
numbers.splice(0, 2);
console.log(numbers.join(', ')); // 3, 4Если исходный массив ещё понадобится, берите slice().