arr.sort

问:

arr.sort_第1张图片

回答:

在你提供的代码中,使用了一个比较函数 (b, a) => b - a 来对数组进行排序。这个比较函数的返回值 b - a 决定了元素的排序顺序。

当比较函数返回一个负数时,表示第一个参数 b 应该排在第二个参数 a 之前,即 b 的值小于 a 的值。这样,sort() 方法会将 b 放在 a 的前面,实现递增排序。

具体来说,在每次比较时,比较函数会将当前的两个元素 ba 作为参数传入,并计算 b - a 的值。如果 b 的值小于 a 的值,那么 b - a 的结果就是一个负数,表示 b 应该排在 a 之前。因此,sort() 方法会将 b 放在 a 的前面。

在你的例子中,数组 [4, 2, 8, 18, 8] 在经过排序后的结果为 [2, 4, 8, 8, 18]。可以通过观察比较函数中的 console.log 输出来理解排序的过程:

arr.sort_第2张图片

可见b-a是负值的时候就要调换两个的位置,因为后面的数小于前面的数了,结果是正数,排序就是正常的,

你可能感兴趣的:(1024程序员节)