首页 > 试题广场 > 以下代码执行后,array 的结果是?var&nb
[单选题]
以下代码执行后,array 的结果是?var array = [-1,1,3,4,6,10];
array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));
  • [3, 4, 1, 6, -1, 10]
  • [-1, 1, 3, 4, 6, 10]
  • [10, 6, 4, 3, 1, -1]
  • [10, -1, 6, 1, 4, 3]
arr.sort(function(a,b){
    return a-b;  //正序排序
}
它的内部采用冒泡算法,两数之差 > 0交换位置;<0不交换位置。
比如 Math.abs(-1-3)=4  > Math.abs(1-3)=2,-1与1交换位置;接着再用-1与3比较,直至所有数都比较完
发表于 2019-08-09 18:26:58 回复(0)
先总结排序函数的作用:根据所有数在数轴上与3的距离进行升序排列
然后观察数组: [-1,1,3,4,6,10]
显而易见其中的3离3最近,肯定排在第一个
所以直接排除BCD选A
发表于 2019-08-23 22:44:35 回复(0)
全部-3 求绝对值,然后重新排序
发表于 2019-08-23 18:59:19 回复(0)