Как вы можете отсортировать массив без изменения исходного массива?

Предположим, мне нужна функция сортировки, которая возвращает отсортированную копию введенного массива. Я наивно пробовал это

function sort(arr) {
  return arr.sort();
}

и я проверил это с этим, что показывает, что мойsort Метод мутирует массив.

var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a);  //alerts "1,2,3,3,3,4,5,7,7"

Я тоже попробовал этот подход

function sort(arr) {
  return Array.prototype.sort(arr);
}

но это не работает вообще.

Есть ли прямой способ обойти это, предпочтительно способ, который не требует ручного скручивания моего собственного алгоритма сортировки или копирования каждого элемента массива в новый?

Ответы на вопрос(6)

Ваш ответ на вопрос