JS数组排序的坑!今天也是新认识js的一天

JS的数组排序方法排的是字符串

为何这么说呢
看代码:

let nums = [25, 100, 90]
nums.sort() // [100, 25, 90]

发现问题了吗,默认是按照升序排序的
但是答案并不是[25, 90, 100]
而是 [100, 25, 90]
这是因为sort函数按照字符串顺序进行排序
过程是这样的:25和100,第一个字符 2>1 ,所以'25' > '100',25被排到了后面

改正方法就是在sort后的括号内添加一个比值函数

nums.sort((a, b) => {
    
    
    return a - b
  })

a - b 值为真时才进行换位,所以当 a 比 b 小时,不进行换位(a在b的前一个位置)

猜你喜欢

转载自blog.csdn.net/weixin_45543674/article/details/120188831