日常问题复盘之sort()方法排序引发的bug

某年某日,产品捧着两个手机到我面前,啪的摆成一排。

‘你看看,为啥我的手机跟小白的手机商品显示顺序不一样呢?’

我立即掏出了我的手机,看了下我的是没问题的。开发就这点毛病,自己的没问题别人的有问题那就是机型适配问题,和代码无关,坚决不承认自己的锅。

但是我当时想的是,会不会后端的接口返回值没有排序导致的乱序呢。

后端坚决地说绝对是一致的,但我不信啊,还是抓包看了一下,嗯...果然是相同的。

那既然接口数据相同,代码处理也相同,但是只有个别机型有问题的话,只能是某个方法对于部分浏览器不兼容???

然后找代码中出问题的部分开始一一排查。最终锁定问题出现在sort()方法。

写法类似:

list.sort((a, b)  => return a.v - b.v  })

在a.v - b.v结果为0的时候导致两方出现了差异。

那么是因为什么呢,后来搜索了一番,发现了一个答案


原文链接:https://www.cnblogs.com/yzeng/p/3949182.html

解决办法也是规避了0的返回值,之后测试就没有问题了,不过仍然需要排查其他场景。

完毕---------

你可能感兴趣的:(日常问题复盘之sort()方法排序引发的bug)