js的Array的sort 排序方法

2022-08-09 06:09:10 字數 1050 閱讀 3869

摘自廖雪峰的官方**

arraysort()方法預設把所有元素先轉換為string再排序,字串是根據ascii碼進行排序,所以sort()方法排序結果畫風可能是這樣的

//

看上去正常的結果:

////

無法理解的結果:

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

[1, 10, 2, 20]

第三個排序是因為sort()方法預設把所有元素先轉換為string再排序,結果'10'排在了'2'的前面,而字元'1'比字元'2'的ascii碼小。

幸運的是,sort()方法也是乙個高階函式,它還可以接收乙個比較函式來實現自定義的排序。

要按數字大小排序,我們可以這麼寫:

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

arr.sort(

function

(x, y)

if (x >y)

return 0;

});console.log(arr);

//[1, 2, 10, 20]

最後友情提示,sort()方法會直接對array進行修改,它返回的結果仍是當前array

var a1 = ['b', 'a', 'c'];

var a2 =a1.sort();

a1;

//['a', 'b', 'c']

a2; //

['a', 'b', 'c']

a1 === a2; //

true, a1和a2是同一物件

js陣列Array元素排序sort

對於陣列可以呼叫sort對陣列項進行排序,預設是公升序排序如下 var arra 2,4,3,1 arra.sort document.writeln arra 結果是 1,2,3,4 sort方法可以接受乙個引數,該引數是具有兩個引數 分別代表要比較的兩個資料項 的函式,當函式返回值為1時,交換兩...

js陣列Array元素排序sort

對於陣列可以呼叫sort對陣列項進行排序,預設是公升序排序如下 var arra 2,4,3,1 arra.sort document.writeln arra 結果是 1,2,3,4 sort方法可以接受乙個引數,該引數是具有兩個引數 分別代表要比較的兩個資料項 的函式,當函式返回值為1時,交換兩...

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...