在JavaScript中,数组的sort()方法默认按照字符串顺序排序,而不是数字顺序。所以当你对一个包含数字的数组直接调用sort()时,它会先将数组元素转换为字符串,然后进行比较。
var a = [-1,0,1,2,-1,-4];
var b = a.sort();
这里数组a中的元素会被转换成字符串进行排序,因此结果可能并不是你期望的数字从小到大的顺序。
如果你想让sort()按数字大小排序,你需要提供一个比较函数作为参数:
var a = [-1,0,1,2,-1,-4];
var b = a.sort(function(a, b) {
return a - b;
});
这样,b就会是按照数字从小到大排序的结果。