青椒rose_0
2016-08-09 13:51
不知道为什么会这样排序
unicode编码 0.01 ===> \u0030\u002e\u0030\u0031 100 ===>\u0031\u0030\u0030 18===> \u0031\u0038 ,从第一位开始比较u0031比u0030大,所以在100和18后面,相同的时候比较第二位同理,18在100后面,好吧我承认我很无聊。
function sortNum(a,b) {
return a-b;
}
var myarr = new Array("0.01","0.1","3","-1","100","50","18");
document.write(myarr.sort()+"<br>");
document.write(myarr.sort(sortNum))
划线的部位是在你代码上添加的,这样就会正常按照你的意愿排列,不添加的话,个人理解是你没对这组数安排升降,也没调用函数,那它就自己随机排列啦,也不知道对不对哈,望大神们指导!
如果不指定<方法函数>,则按unicode码顺序排列。
这一节的讲解里面有,你也可以再详细看看哟
因为你没有指定<方法函数>,那么就会按unicode码顺序排列。
代码贴出来
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题