关于js数组方法sort()负数排序的陷阱

今天在刷力扣题的时候遇到数组排序的问题,想着图个方便就使用了arr.sort(),

刚开始用正数进行测试用例的时候没有出错,

问题:

在使用负数的测试用例时,预期目标是  [-10,-2,-1...1,2,3], 结果出现了  [-1,-2,-10......1,2,3] 这样的结果

解析:

在网上找了一下发现,sort()这个方法: 默认情况下是按照 Unicode 代码进行排序的。对于数字,如果数组包含负数,直接使用sort()可能不会按照数值的正常顺序进行排序。

怎么办:

方法1:自己写排序

 

方法2:写自定义函数

升序:

arr = arr.sort((a,b)=>{
      return a-b
 })
降序:
arr = arr.sort((a,b)=>{
  return b-a
})
参考: https://blog.csdn.net/study_way/article/details/135478580
posted @ 2024-03-13 12:57  妞妞猪  阅读(189)  评论(0)    收藏  举报