Array排序方法sort 中的大坑

2022-03-03 04:03:00 字數 681 閱讀 6161

sort() 方法用於對陣列的元素進行排序。

但是排序結果就有點坑了,都不按常規出牌的:

//

看上去正常的結果:

////

無法理解的結果:

[10, 20, 1, 2].sort(); //

[1, 10, 2, 20]

var arr = [10, 20, 1, 2];

//方法一

function

sortnum01(x, y)

if (x >y)

return 0;

};//

方法二function

sortnum02(x, y) ;

alert(arr.sort(sortnum01))

//[1, 2, 10, 20]

alert(arr.sort(sortnum02))//

[1, 2, 10, 20]

忽略大小寫,按照字母序排序(先把字串都變成大寫或者都變成小寫比較,對原來arr沒影響):

arr.sort(

function

(s1, s2)

if (x1 >x2)

return 0;

});

alert(arr);

//

js的Array的sort 排序方法

摘自廖雪峰的官方 array的sort 方法預設把所有元素先轉換為string再排序,字串是根據ascii碼進行排序,所以sort 方法排序結果畫風可能是這樣的 看上去正常的結果 無法理解的結果 10,20,1,2 sort 1,10,2,20 第三個排序是因為sort 方法預設把所有元素先轉換為s...

js中陣列 Array 的排序 sort 注意事項

var arrdemo new array arrdemo 0 10 arrdemo 1 50 arrdemo 2 51 arrdemo 3 100 arrdemo.sort 呼叫sort方法後,陣列本身會被改變,即影響原陣列 alert arrdemo 10,100,50,51 預設情況下sort...

js中陣列 Array 的排序 sort 注意事項

直接看 吧,測試結果也貼在裡面了 vararrdemo new array arrdemo 0 10 arrdemo 1 50 arrdemo 2 51 arrdemo 3 100 arrdemo.sort 呼叫sort方法後,陣列本身會被改變,即影響原陣列 alert arrdemo 10,100...