> Изменяется ли исходный массив при вызове метода sort в JavaScript и почему (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: ITFB, Сбер

Стек: JavaScript

> Пример ответа

Да, исходный массив изменяется. Метод sort() в JavaScript выполняет сортировку на месте (in-place), то есть мутирует оригинальный массив, а не создаёт его копию. Это связано с тем, что sort() работает непосредственно с ссылкой на массив, переставляя элементы внутри него.

Пример:

JAVASCRIPT
const arr = [3, 1, 2];
arr.sort();
console.log(arr); // [1, 2, 3] - исходный массив изменён

Если нужно сохранить исходный массив, следует предварительно создать его копию, например, через [...arr].sort() или arr.slice().sort().

Такое поведение зафиксировано в спецификации ECMAScript и является стандартным для многих методов массивов (например, reverse(), splice()), в отличие от неизменяемых методов (например, map(), filter()), которые возвращают новый массив.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью