JavasSript陷阱之sort
最新
06-11
先安利一個 網站CodeWars,上面的題都是用戶出的,所以題庫無限大,升段系統也挺有意思的,我的主頁Hoofoo。
函數是 編程最常用的函數之一,最近在codewars練演算法時偶然發現執行 時負數的排序順序沒有按照預想的運行。
[5,4,3,2,1,0,-1,-2].sort() // =>[ -1, -2, 0, 1, 2, 3, 4, 5 ]
然後在MDN查看發現 函數默認是按字典序排序的,MDN是如下描述的:
方法在適當的位置對數組的元素進行排序,並返回數組。 sort 排序不一定是穩定的。默認排序順序是根據字元串Unicode碼點。
所以排序還是要老老實實的用回調函數:
[5,4,3,2,1,0,-1,-2].sort((a, b) => a - b) // =>[ -2, -1, 0, 1, 2, 3, 4, 5 ] [5,4,3,2,1,0,-1,-2].sort((a, b) => b - a) // =>[ 5, 4, 3, 2, 1, 0, -1, -2 ]
可能很多函數都像 一樣不會像我們想像的那樣運行,多看書看文檔,鞏固好基礎,才能寫出足夠穩固的代碼。
※阿里巴巴最新面試經驗
※路由器的LED燈將允許攻擊者從物理隔離計算機中竊取數據
※PHP安全之密碼哈希處理
※月訂單超20000,最低報價588元,獲順為、騰訊投資,他卻說自己乾的是臟活累活
※做 LGBT 群體的 Airbnb,法國初創公司 Misterb&b?獲850 萬美元融資
TAG:推酷 |