Sobes.tech
Назад к вопросам
Middle+
1

Расскажи про методы массивов: какие используешь, мутируют ли они массив, что возвращают?

Компании, где спрашивали
Employcity

Ответ от нейросети

sobes.tech AI

В JavaScript есть множество методов для работы с массивами. Вот основные из них, которые часто использую:

  • map(callback) — создает новый массив, применяя функцию к каждому элементу. Не мутирует исходный массив.

  • filter(callback) — создает новый массив из элементов, которые прошли проверку. Не мутирует.

  • reduce(callback, initialValue) — сводит массив к одному значению, применяя функцию аккумуляции. Не мутирует.

  • forEach(callback) — выполняет функцию для каждого элемента, возвращает undefined. Не мутирует, но можно менять элементы внутри функции.

  • push(element) — добавляет элемент в конец массива. Мутирует массив, возвращает новую длину.

  • pop() — удаляет последний элемент. Мутирует, возвращает удаленный элемент.

  • shift() — удаляет первый элемент. Мутирует, возвращает удаленный элемент.

  • unshift(element) — добавляет элемент в начало. Мутирует, возвращает новую длину.

  • slice(start, end) — возвращает новый массив с копией части исходного. Не мутирует.

  • splice(start, deleteCount, ...items) — изменяет массив, удаляя и/или добавляя элементы. Мутирует, возвращает удаленные элементы.

  • sort() — сортирует массив на месте. Мутирует, возвращает отсортированный массив.

  • concat(array) — возвращает новый массив, объединяя исходный с другим. Не мутирует.

Пример использования map и filter:

const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(n => n * 2); // [2, 4, 6, 8, 10]
const evens = numbers.filter(n => n % 2 === 0); // [2, 4]

Важно помнить, что методы, мутирующие массив, изменяют исходный, что может привести к багам, если не контролировать состояние. Методы, возвращающие новый массив, помогают писать более чистый и предсказуемый код.