Girilen dizinin sıralanmış bir kopyasını döndüren bir sıralama işlevi istediğimi varsayalım. Safça denedim
function sort(arr) {
return arr.sort();
}
ve bunu test ettim, bu da benim sort
yöntemimin diziyi değiştirdiğini gösteriyor
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"
Ben de bu yaklaşımı denedim
function sort(arr) {
return Array.prototype.sort(arr);
}
ama hiç işe yaramıyor.
Bunun etrafında basit bir yol var mı, tercihen kendi sıralama algoritmamı elle yuvarlamayı veya dizinin her öğesini yenisine kopyalamayı gerektirmeyen bir yol var mı?
.sort
this
değerin dizi olmasını gerektirir , bu nedenle son snippet'in çalışması için bunu yaparsınız .sort.call(arr)
(sorununuzu çözmese de).