js中數組(Array)的排序(sort)注意事項 (轉)

js中數組(Array)的排序(sort)注意事項 (轉自:http://www.cnblogs.com/yjmyzz/archive/2009/10/20/1586896.html)

直接看代碼吧,測試結果也貼在裏面了
var arrDemo = new Array();
 arrDemo[0] = 10;
 arrDemo[1] = 50;
 arrDemo[2] = 51;
 arrDemo[3] = 100;
 arrDemo.sort(); //調用sort方法後,數組本身會被改變,即影響原數組
 alert(arrDemo);//10,100,50,51 默認情況下sort方法是按ascii字母順序排序的,而非我們認爲是按數字大小排序
 arrDemo.sort(function(a,b){return a>b?1:-1});//從小到大排序
 alert(arrDemo);//10,50,51,100
 arrDemo.sort(function(a,b){return a<b?1:-1});//從大到小排序
 alert(arrDemo);//100,51,50,10
結論:
1.數組調用sort方法後,會影響本身(而非生成新數組)
2.sort()方法默認是按字符來排序的,所以在對數字型數組排序時,不可想當然的以爲會按數字大小排序!
3.要改變默認的sort行爲(即按字符排序),可以自行指定排序規則函數(如本例所示)
對應MSDN地址:http://msdn.microsoft.com/en-us/library/4b4fbfhk(VS.85).aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章