首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于字符串的比较有关问题

2012-05-21 
关于字符串的比较问题书上说的数值5虽然小于10但在进行字符串比较时,10 则位于5的前面也就是说是用js

关于字符串的比较问题


书上说的

数值5虽然小于10 但在进行字符串比较时,"10" 则位于"5"的前面

也就是说是用js中的sort()方法排序 0,1,5,10,15的结果是

0,1,10,15,5

问一下这个关于字符串的排序是怎么排的,有没有什么标准!

[解决办法]
传递排序的比较方法

JScript code
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前面

热点排行