【问题标题】:how does sort comparison get it's arguments from the array排序比较如何从数组中获取它的参数
【发布时间】:2015-11-07 22:27:59
【问题描述】:

我正在阅读 JavaScript For Web Developer 第 3 版,但我不知道它是如何工作的。我了解比较功能的工作原理。但是 values.sort(compare);让我困惑。 compare 查看 2 个参数并比较它们。但我没有通过 2 个论点。即使我确实将 2 个参数传递给函数,它如何将自己与数组中的其余项目进行比较?排序功能是否在后台做一些我不知道的事情?如果是这样,它是如何工作的? 提前谢谢你:)

function compare(value1, value2) 
{
 if (value1 < value2) {
 return 1;
 } else if (value1 > value2) {
 return -1;
 } else {
 return 0;
 }
}

var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //15,10,5,1,0

【问题讨论】:

    标签: javascript arrays sorting comparison


    【解决方案1】:

    比较函数是您提供给排序函数的回调函数。 sort 函数将使用某种算法对列表进行排序。当排序函数的算法需要比较列表中的两项时,排序方法会调用这两项的比较函数。

    【讨论】:

    • 我明白了。谢谢你的回复 :) 所以排序算法会看到我有一个 x 项的数组并自动抓取数组中的 2 个项并递归地将它们用于我的比较函数,直到它被排序?
    • 那里没有递归。检查一些排序算法,例如冒泡排序并自己实现。那么你就可以知道比较函数的目的是什么了。
    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 2010-11-17
    • 2010-10-25
    • 2020-07-10
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多