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