陣列的常用方法 3 es3 0 sort

2021-09-30 16:30:07 字數 1487 閱讀 4097

sort

排序

現在是公升序,我想降序怎麼辦呢?

那現在看個例子:

var arr = [1,3,5,4,10];//拍完順序之後應該是1,3,4,5,10

但是你看

他被你這個當成了字元,按

ascii

排的,不是咱們想要的。

sort遵守乙個規則:

1.必須寫兩個形參

2.看返回值

(1)如果返回值為正數時,後面的數在前面

(2)如果返回值為負數時,前面的數在前面

(3)如果返回值為0時,不動

var arr = [1,3,5,4,10];

arr.sort(function())

返回值如果是1,為正數,那麼1和3換位置,再比較1,5,它符合氣泡排序的規則。

返回值如果是-1,為負數,1還是在前面,再比較1,5;1,4.。。。

所以返回值就是我們所控制的。

var arr = [1,3,5,4,10];

arr.sort(function(a,b)else

})

那還有沒有更簡單的方法,也就是說,你把他簡化一下。

三目運算子可以吧!arr.sort(function(a,b))

還能不呢個簡化一下?

你看,a>b返回乙個正數,說明這是公升序吧,a>b也就是a-b>0,

var arr = [1,3,5,4,10];

arr.sort(function(a,b)else

})

a>b,else

就是a-b<0

吧。所以,

a-b>0

的時候返回乙個正數,那我返回

a-b的結果不就完事了,

else

,a-b<0

的時候返回乙個負數,那我也返回

a-b的結果不也就完事了,都是返回

a-b的結果。

var arr = [1,3,5,4,10];

arr.sort(function(a,b))

那降序就是返回

b-a了唄。

看結果的時候你可別

arr.sort

,這個函式已經執行完了,所以你不能直接呼叫,你得裡面加函式才能呼叫,你要如果呼叫

arr.sort()

,他會比較

ascii

的大小。

陣列的常用方法 4 es3 0 燒腦小練習

練習23 給乙個有序的陣列亂序,而且每次的順序還不一樣。用sort 排序,亂序也得用 sort math.random 返回的是0 1 之間的開區間的數。那要產生負數,怎麼辦?減一,減一不就減沒了嗎?減0.5是不是就完事了!每次重新整理之後的arr是不是就亂序了,而且每次的順序都不一樣。練習24 所...

JS陣列常用方法 11 ES3及之前的方法總結

對學習內容進行總結之後,對學習和記憶都大有裨益,例如之前學的陣列的10個方法可以總結為三類 a 修改陣列 push unshift shift pop splice b 改變陣列元素順序 sort reverse c 不影響原陣列 join,concat,slice 修改陣列 push unshif...

js陣列常用方法 ES5 ES6

注 不改變原陣列,返回乙個新的字串 let array i am shan er array.join i,am,shan,er 預設以逗號分隔 array.join i am shan er array.join i am shan er 注 改變原陣列 let array i am shan e...