在 javascript/practice
資料夾下,建立 array_sort.html
檔案,以便練習。
預設上,sort() 排序的是字串。然後會影響原來的字串。
如果陣列裡是數值,會發現排序出來的結果跟我們想的不一樣:
Compare Function 的用途是用來取代 sort() 函式預設的字串排序方式,也就是我們可以自訂排序方式,每次比較兩個數值,然後必需回傳負數、0、正數。
常見寫法:
回傳如果是負數: 就先排 a 再排 b。
回傳如果是正數:就先排 b 再排 a。
回傳如果是 0:就不做任何更動。
解讀:
40、100 會被代入,a 是 40,b 是 100,兩者相減是負數,所以先排 40 再排 100。依此類推。
只要將回傳的結果加上負號即可:
解讀:
40、100 會被代入,a 是 40,b 是 100,兩者相減是負數,但因為加上了負號,所以回傳結果是正數,所以先排 100 再排 40。
陣列整個反轉:
請將以下的物件陣列,依照 year 來排序,由小到大:
參考作法: