Этот вопрос помогает проверить понимание концепции мутирующих и не мутирующих методов в JavaScript, а также знание основных методов работы с массивами и объектами.
Мутирующие методы изменяют оригинальный массив или объект, тогда как не мутирующие методы возвращают новый массив или объект без изменения исходного. Например, методы push() и pop() являются мутирующими, потому что они изменяют исходный массив. В то время как map() и filter() являются не мутирующими, так как они создают новый массив на основе исходного.
В JavaScript методы работы с массивами и объектами делятся на мутирующие и не мутирующие.
Мутирующие методы: Эти методы изменяют исходный массив или объект. Например:
push(): Добавляет один или несколько элементов в конец массива и изменяет его.
const fruits = ['apple', 'banana'];
fruits.push('orange'); // ['apple', 'banana', 'orange']splice(): Позволяет удалять или заменять элементы в массиве, изменяя его.
const fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1); // Удаляет 'banana'Не мутирующие методы: Эти методы возвращают новый массив или объект, не изменяя исходный. Например:
map(): Создает новый массив, где каждый элемент является результатом выполнения заданной функции для каждого элемента исходного массива.
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2); // [2, 4, 6]filter(): Создает новый массив, состоящий только из элементов, которые удовлетворяют заданному условию.
const numbers = [1, 2, 3, 4];
const evens = numbers.filter(num => num % 2 === 0); // [2, 4]Понимание различий между мутирующими и не мутирующими методами важно, так как это может влиять на производительность и предсказуемость кода. Например, при использовании библиотек для управления состоянием, таких как Redux, предпочтительно использовать не мутирующие методы, чтобы избежать непредсказуемых изменений состояния.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию