Что такое мутирующие и не мутирующие методы?
Этот вопрос помогает проверить понимание концепции мутирующих и не мутирующих методов в 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, предпочтительно использовать не мутирующие методы, чтобы избежать непредсказуемых изменений состояния.