快捷导航

JS中的数字排序问题?

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怎么解决呢?

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

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

使用道具 举报

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

使用道具 举报

可能感兴趣的问答

发新帖
TA的信息
  • 会员所属: 注册会员
  • 认证信息: 邮箱认证手机认证
  • 微信访问
  • 手机APP