在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] //与上面结果的区别是绝对值相同的数,负数排在正数的后面