js中array的sort()方法使用介紹
更新時(shí)間:2014年02月20日 16:38:19 作者:
默認(rèn)的sort方法并不是按照整形數(shù)據(jù)來(lái)排序,而是用的字符串匹配方式,下面有個(gè)不錯(cuò)的示例,大家可以參考下
或許你一直在用javascript中的array的sort.
或許你一直相信它會(huì)給你正確的結(jié)果。
至少我曾經(jīng)也是這樣認(rèn)為的,直到有一天,我看到了如下的代碼 :
[5,10,1].sort();
或許結(jié)果有點(diǎn)出人意料。結(jié)果如下:
[1,10,5]
仔細(xì)深究之后,發(fā)現(xiàn)原來(lái)默認(rèn)的sort方法并不是按照整形數(shù)據(jù)來(lái)排序,而是用的字符串匹配方式。
換言之就是10 中的這個(gè) 1 導(dǎo)致了上面代碼的錯(cuò)誤。
當(dāng)然,解決方法有很多,可以給sort方法中傳入回調(diào)函數(shù)。
[5,10,1].sort(function(x,y){
if(x>y) {return 1;
}else{
return -1
}
}
);
這樣就能得到你預(yù)期的結(jié)果了。
偶然發(fā)現(xiàn),以記錄之,防止忘記。
或許你一直相信它會(huì)給你正確的結(jié)果。
至少我曾經(jīng)也是這樣認(rèn)為的,直到有一天,我看到了如下的代碼 :
復(fù)制代碼 代碼如下:
[5,10,1].sort();
或許結(jié)果有點(diǎn)出人意料。結(jié)果如下:
復(fù)制代碼 代碼如下:
[1,10,5]
仔細(xì)深究之后,發(fā)現(xiàn)原來(lái)默認(rèn)的sort方法并不是按照整形數(shù)據(jù)來(lái)排序,而是用的字符串匹配方式。
換言之就是10 中的這個(gè) 1 導(dǎo)致了上面代碼的錯(cuò)誤。
當(dāng)然,解決方法有很多,可以給sort方法中傳入回調(diào)函數(shù)。
復(fù)制代碼 代碼如下:
[5,10,1].sort(function(x,y){
if(x>y) {return 1;
}else{
return -1
}
}
);
這樣就能得到你預(yù)期的結(jié)果了。
偶然發(fā)現(xiàn),以記錄之,防止忘記。
相關(guān)文章
js驗(yàn)證IP及子網(wǎng)掩碼的合法性有效性示例
這篇文章主要介紹了js驗(yàn)證IP及子網(wǎng)掩碼的有效性,需要的朋友可以參考下2014-04-04
JavaScript事件委托技術(shù)實(shí)例分析
這篇文章主要介紹了JavaScript事件委托技術(shù),實(shí)例分析了事件委托技術(shù)的原理、適用場(chǎng)合及用法實(shí)例,需要的朋友可以參考下2015-02-02
Jquery 返回json數(shù)據(jù)在IE瀏覽器中提示下載的問(wèn)題
Jquery 返回json數(shù)據(jù),IE瀏覽器提示下載的問(wèn)題,當(dāng)提交完數(shù)據(jù)后返回的本來(lái)是json數(shù)據(jù)的,在火弧里測(cè)試正常,解決方法如下2014-05-05
用javascript 控制表格行的展開(kāi)和隱藏的代碼
用javascript 控制表格行的展開(kāi)和隱藏的代碼...2007-08-08
js中onclick和addEventListener的區(qū)別
本文對(duì)javascript中onclick事件處理的方法和addEventListener監(jiān)聽(tīng)器進(jìn)行講解,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08

