建議11 增強陣列排序的sort功能

2021-10-01 17:41:51 字數 1396 閱讀 6031

sort方法不僅按字母順序進行排序,還可以根據其他順序執行操作.這時就必須為方法提供乙個比較函式的引數,該函式要比較兩個值,然後返回乙個用於說明這兩個值得相對順序的數字.比較函式應該具有兩個引數a和b,其返回值如下:

如果根據自定義評判標準,a小於b,在排序後的陣列中a應該出現在b之前,就返回乙個小於0的值

如果a等於b,就返回0

如果a大於b,就返回乙個大於0的值

下面的示例中,將根據比較函式來比較陣列中每個元素的大小,並按從小到大順序排序

function

f(a,b)

var a = [4,3,5,6,7,3,6,8]

a.sort(f)

console.log(a);

//[3, 3, 4, 5, 6, 6, 7, 8]

如果是從大到小,則讓返回值取反就好

function

f(a,b)

var a = [4,3,5,6,7,3,6,8]

a.sort(f)

console.log(a);

//[8, 7, 6, 6, 5, 4, 3, 3]

(1) 根據奇偶性值排列陣列

sort方法用法比較靈活,但更靈活的是對比較函式的設計.例如:要根據奇偶數順序排列陣列,只需要判斷比較函式中兩個引數是否為奇偶數,並決定排列順序

function

f(a,b)

var a = [3,1,2,4,5,7,6,8,0,9]

a.sort(f)

console.log(a);

//[3, 1, 5, 7, 9, 0, 8, 6, 4, 2]

sort方法在呼叫比較函式時,將每個元素值傳遞給比較函式,如果元素值為偶數,則保留其位置不動,如果元素值為奇數,則調換引數a和b的顯示順序,從而實現陣列中所有元素執行奇偶排序.

(2) 不區分大小寫排序字串

如果不希望區分字母大小,也就是說大寫字母和小寫字母按相同順序排列

function

f(a,b)

else

}var a = ['ab','ab','ba','ba']

a.sort(f)

console.log(a);

//["ab", "ab", "ba", "ba"]

(3) 把浮點數和整數分開排列

function

f(a,b)

if(b>math.floor(b))

}var a = [3.555,3,2.111,5,7,3]

a.sort(f)

console.log(a);

//[3, 5, 7, 3, 2.111, 3.555]

jquery 陣列sort 排序

排序前 var animals dog cat tiger pig bird 排序後animals animals.sort show6 html animals.join bird catdog pigtiger排序前 var ar nums 12 2 5 36 4 排序後nums nums.so...

jquery陣列 sort 排序

html 12 show5 34 show6 jquery var animals dog cat tiger pig bird show5 html animals.join animals animals.sort show6 html animals.join 顯示結果 字串陣列排序前 dog...

javascript陣列的排序(sort,冒泡)

一 js的sort 方法 var arr 10,20,1,2 arr.sort function a,b return 0 console.log arr 1,2,10,20 如上面 按照正序 由小到大 排列。通常規定,如果ab,則返回1 如果a b,則返回0 倒序相反。var arr 10,20,...