> Изменяется ли исходный массив при вызове метода sort в JavaScript и почему (JavaScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: ITFB, Сбер
Стек: JavaScript
> Пример ответа
Да, исходный массив изменяется. Метод sort() в JavaScript выполняет сортировку на месте (in-place), то есть мутирует оригинальный массив, а не создаёт его копию. Это связано с тем, что sort() работает непосредственно с ссылкой на массив, переставляя элементы внутри него.
Пример:
JAVASCRIPTconst arr = [3, 1, 2];arr.sort();console.log(arr); // [1, 2, 3] - исходный массив изменён
Если нужно сохранить исходный массив, следует предварительно создать его копию, например, через [...arr].sort() или arr.slice().sort().
Такое поведение зафиксировано в спецификации ECMAScript и является стандартным для многих методов массивов (например, reverse(), splice()), в отличие от неизменяемых методов (например, map(), filter()), которые возвращают новый массив.
> Похожие задачи по frontend
Как работать с Promise в цепочках
Что такое самовызывающаяся функция (IIFE) в JavaScript
Как отлавливать ошибки промисов в JavaScript
Какой метод вызывается при наследовании, если метод определён в прототипе родителя и в экземпляре дочернего класса в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью