Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript。帮助理解在数组中排序数字时比较函数的工作原理_Javascript_Sorting_Integer_Compare - Fatal编程技术网

Javascript。帮助理解在数组中排序数字时比较函数的工作原理

Javascript。帮助理解在数组中排序数字时比较函数的工作原理,javascript,sorting,integer,compare,Javascript,Sorting,Integer,Compare,好的,我知道如何将数字从大到小或从小到大排序。我不明白的是javascript是如何实现的。有人能一步一步地告诉我javascript是如何对以下数组进行排序的吗?我知道如何使用它,我需要理解它 var arr = [3, 2, 4, 5, 1] function sorter(a, b) { return a - b; } arr.sort(sorter) 你能告诉我哪个数字代表a,哪个代表b,以及它如何遍历数组的其余部分吗。例如,3-2是1,所以它会将2切换到一个小于3的索引,这如何

好的,我知道如何将数字从大到小或从小到大排序。我不明白的是javascript是如何实现的。有人能一步一步地告诉我javascript是如何对以下数组进行排序的吗?我知道如何使用它,我需要理解它

var arr = [3, 2, 4, 5, 1]

function sorter(a, b) {
  return a - b;
}
arr.sort(sorter)
你能告诉我哪个数字代表a,哪个代表b,以及它如何遍历数组的其余部分吗。例如,3-2是1,所以它会将2切换到一个小于3的索引,这如何在整个数组中继续?我想知道为什么这样做有效,而不是盲目地使用它。谢谢

你能告诉我哪个数字代表a,哪个代表b,以及它如何遍历数组的其余部分吗

没关系;没有具体说明

浏览器可以实现他们想要的任何排序算法。所定义的是,它们使用数组中的两个不同项调用函数(索引不同,而不是值不同),函数应该返回

  • 0
    如果这些值在顺序上相同
  • 0
    如果第一个参数应该在第二个参数之后

您可能希望签出一些未指定且依赖于实现的

。它还取决于数组的大小。克劳迪娅·埃尔南德斯的“”的可能副本是对该主题的一个很好的介绍。我了解数字是如何排列的,我问什么是索引a,什么是b&它如何在数组中循环。是数组[0]=a,数组[1]=b,还是数组[1]=a,数组[2]=b,依此类推,直到数组结束?经过一次迭代,它将是[4,3,2,1,5]。当它到达数组的末尾时,它是否继续循环回到数组的开头?最终,数组按照此逻辑排序为[1,2,3,4,5]。我的解释正确吗,它是这样循环的?另外,是什么告诉比较在排序后停止在数组中循环?告诉函数停止排序的条件是什么?