默認的sort方法並不是按照整形數據來排序,而是用的字符串匹配方式,下面有個不錯的示例,大家可以參考下
或許你一直在用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 } } ); 這樣就能得到你預期的結果了。 偶然發現,以記錄之,防止忘記。