在JavaScript中,数组使用sort()后发现有排序不正确的情况
排序前var a = [10,6,6,10,10,9,8,8,3,3,8,2,1,5,1,9,5,2,7,4,7,7]
排序后
很明显排序不正确
查阅资料后,数组元素首先会被转换为字符,例如1变成"1"
,之后会根据Unicode
编码的顺序来进行排序,所以这就是为什么10排到了2前面
解决方法是,指定好compareFunction
1 | a.sort(function (a,b) { |
这样排序后就没有问题了
在JavaScript中,数组使用sort()后发现有排序不正确的情况
排序前var a = [10,6,6,10,10,9,8,8,3,3,8,2,1,5,1,9,5,2,7,4,7,7]
排序后
很明显排序不正确
查阅资料后,数组元素首先会被转换为字符,例如1变成"1"
,之后会根据Unicode
编码的顺序来进行排序,所以这就是为什么10排到了2前面
解决方法是,指定好compareFunction
1 | a.sort(function (a,b) { |
这样排序后就没有问题了