입력 된 배열의 정렬 된 사본을 반환하는 정렬 함수를 원한다고 가정 해 봅시다. 나는 순진하게 이것을 시도했다.
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);
}
그러나 전혀 작동하지 않습니다.
이 방법에 대한 간단한 방법이 있습니까? 가능하면 내 자체 정렬 알고리즘을 수동으로 롤링하거나 배열의 모든 요소를 새 것으로 복사 할 필요가없는 방법이 있습니까?
.sort필요 this당신이 할 일을 마지막 조각을위한 있도록 배열로 값을 .sort.call(arr)(이 문제가 해결되지 않습니다하지만).