【发布时间】:2011-10-23 11:19:08
【问题描述】:
在多个浏览器中,以下代码无法正确排序数字:
a = new Array();
a.push(10);
a.push(60);
a.push(20);
a.push(30);
a.push(100);
document.write(a.sort())
它返回10,100,20,30,60。
有人知道为什么吗?
【问题讨论】:
-
只是一个迟到的评论,如果你没有隐式传递一个函数,那么你就是在告诉它对一个 unicodes/strings 数组进行排序。在 unicode 中 100 小于 20。
-
“原因”是
Array.sort排序alphabetically,而不是数字。对于数字排序:a.sort(function(a,b){return a-b}).
标签: javascript arrays sorting numbers numeric