sort在不同浏览器下执行效果

sort在不同浏览器下执行效果

let arr = [
	{name: 'zhangsan', age: 40},
	{name: 'lisi', age: 20},
	{name: 'laowang', age: 50},
	{name: 'xiaoli', age: 60},
	{name: 'xiaojin', age: 30},
]
arr.sort((a, b) => b.age > a.age);

上面这段代码在谷歌浏览器中,是不会进行排序的。但是在火狐浏览器中,又是能正确排序的。

sort后面跟着的排序函数,需要返回正数、负数或者0才是标准的影响排序的函数。 而上面采用返回布尔值的函数作为排序函数是一种错误写法。

arr.sort((a, b) => b.age - a.age);

改成上面返回正数、负数、零,在谷歌浏览器上也正确排序了。

Note: 这个bug太可怕了,以前写了那么多都没有留意到。特此记录一波。
参考:https://developer.aliyun.com/article/64376

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值