JS的sort排序方法:sort使用的是插入排序和快速排序结合的排序算法
sort()如果不传入参数,则参照元素的Unicode编码值进行比较并排序。
// 升序
list.sort((a, b) => {
return a < b ? -1 : 1
})
或
list.sort((a, b) => {
return a - b
})
// 降序
list.sort((a, b) => {
returna < b ? 1: -1
})
或
list.sort((a, b) => {
return b - a
})
注意:如果使用a<b这种方式进行比较,应注意两边都是数字类型。
隐式转换:
a = ‘12’
b = ‘3’
console.log(a> b) // false
console.log(a - b > 0 ) // true
原因:
a > b进行了字符串的比较,字符串比较是根据字符串的第一位ASCII码值进行比较的。
a-b进行了隐式转换,类型变成了number再进行相减的。‘-’会让左右两边非数值数据隐式转换成数值再进行运算