或許你一直在用javascript中的array的sort.
或許你一直相信它會給你正確的結果。
至少我曾經也是這樣認為的,直到有一天,我看到瞭如下的代碼:
複製代碼代碼如下:
[5,10,1].sort();
或許結果有點出人意料。結果如下:
複製代碼代碼如下:
[1,10,5]
仔細深究之後,發現原來默認的sort方法並不是按照整形數據來排序,而是用的字符串匹配方式。
換言之就是10 中的這個1 導致了上面代碼的錯誤。
當然,解決方法有很多,可以給sort方法中傳入回調函數。
複製代碼代碼如下:
[5,10,1].sort(function(x,y){
if(x>y) {return 1;
}else{
return -1
}
}
);
這樣就能得到你預期的結果了。
偶然發現,以記錄之,防止忘記。