sort()是JavaScript的内置排序实现,据说对于长度少于10的数组采用插入排序,超过10采用快排。等到我技术水平更高点,就去看V8源码吧(笑)
平常对手数字,是这样使用sort()
let r1 = [1, 2, 3, 0, -1].sort((a,b) => b - a)
let r2 = [1, 2, 3, 0, -1].sort((a,b) => a - b)
// 降序
console.log(r1)
// 升序
console.log(r2)
但直接使用sort()会出现什么事情呢?
这时,会把数字类型转化为字符串类型,而0X会转为X。而且降序,因为这是排序的规则变为UTF-16
let arr = [33, 6, 19, 99, 09, 23, 21, 198]
// 默认为降序
// [ 19, 198, 21, 23, 33, 6, 9, 99 ]
console.log(arr.sort())