CodingGame:JavaScript一行代码得出数组中最接近0的排序(绝对值相同, 负数排在正数前)

博客介绍了如何使用JavaScript通过一行代码找出并排序数组中最接近0的数字,包括负数和正数。内容涉及箭头函数、abs()方法、sort()方法的使用以及||运算符的解释。通过对数组的绝对值比较,实现了排序,其中绝对值相等时,负数排在正数前面。
摘要由CSDN通过智能技术生成

在CodingGame上有一道趣味题,有个存放数字的数组,数组中有正负数,要求输出最接近0的数字,我的思路是在数组中挨个取其绝对值,然后与0的差值比较大小,输出最小的那个数字。后面看到很好的解决办法,如下:

var arr=[23,-12,12,34,2,14,-8,22,-1];

arr.sort((a, b) => Math.abs(a) - Math.abs(b) || b - a);

说明 

var arr=[23,-12,12,34,2,14,-8,22,-1];
console.log(arr.sort((a, b) => Math.abs(a) - Math.abs(b))); 

输出结果:[-1, 2, -8, -12, 12, 14, 22, 23, 34]

var arr=[23,-12,12,34,2,14,-8,22,-1];
console.log(arr.sort((a, b) => Math.abs(a) - Math.abs(b) || b - a)); 

输出结果:[-1, 2, -8, 12, -12, 14, 22, 23, 34]   //与上面结果的区别是绝对值相同的数,负数排在正数的后面

 

这一句代码包含的知识点很多,为了弄清楚,先掌握以下的内容:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值