为了账号安全,请及时绑定邮箱和手机立即绑定

JS中的数字排序问题?

JS中的数字排序问题?

YanIsPower 2017-10-15 14:18:59
var myArray = [1,5,3,2,14,55,101,19,500];    function sequence(a, b) {       return a - b;  }    console.log(myArray.sort(sequence));  //alert(arr.sort(sequence()));第一个是alert;第二个是 console.log。为什么会出现这种情况,alert怎么解决呢?
查看完整描述

3 回答

已采纳
?
cxxyjsj

TA贡献119条经验 获得超22个赞

数组arr中方的是字符串数字吧? 字符串比较是通过ascii码从左往右比较的,所以先排1开头,然后是2开头等。。。

查看完整回答
反对 回复 2017-10-15
  • YanIsPower
    YanIsPower
    嗯,是这样,但用log的话顺序是好的,但是用弹框的话 就是先排1开头的了,很懵。 o.o
  • cxxyjsj
    cxxyjsj
    你用log打印的是myArray数组,这个数组内部是数字.
  • YanIsPower
    YanIsPower
    嗯 ,问题解决了,谢谢
?
cnyballk

TA贡献148条经验 获得超93个赞

sort方法本身无论是数字还是字符串都是使用toString转化成字符串后以ascii码进行比较,你这里是因为你alert的sort(sequence())里面的函数传入后执行了,所以和sort()无分别,只有这样写sort(sequence)这样才对,参数是用来确定元素顺序的函数的名称

查看完整回答
1 反对 回复 2017-10-17
  • 3 回答
  • 0 关注
  • 1934 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信