日期:2014-05-16 浏览次数:20417 次
var arr = [0, 1, 10, 15, 5]; arr.sort(); alert(arr); arr.sort(function(a, b){ return a - b; }); alert(arr); // 0,1,5,10,15
------解决方案--------------------
http://www.w3school.com.cn/js/jsref_sort.asp
楼主参考下
里面有段
说明
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
------解决方案--------------------
sort会吧数组的每个元素转换成String类型 所以10和5其实是"10"和"5"
至于比较方法 是先会比较第一个字符,如果相等则比较第二个,否则作为整个字符串比较的结果 依次类推
"10"和"5"中先比"1"和"5"由于'1'的ascii码小于'5'所以 所以10排在5前面