Array.prototype.sort()默认排序规则

194 阅读1分钟

在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就会是按照数字从小到大排序的结果。