javascript - 使用比较函数排序

标签 javascript sorting

所以我明白,给定一个数组,您可以使用自定义比较函数对其进行排序。

Javascript 中类似以下内容:

var arr = [5,4,3,6,7,2];
arr.sort(function(a,b){
    if (a < b)
        return -1;
    else if (a > b)
        return 1;
    else
        return 0;
});

所以我的 friend 说我不需要返回 0 来对这个场景的列表进行排序。此外,他说我们可以从 [true,false] 返回,而不是从 [-1,0,1] 返回。真的吗? 我试图找到他的主张的反例,但我找不到。我无法想象使用他的代码无法正确排序数组的情况。

这是我 friend 给出的例子:

var arr = [5, 4, 3, 6, 7, 2];
arr.sort(function(a, b) {
    return a > b;
});

[-1,0,1]范围内返回是一个好的做法吗?当整数具有可比性时,有什么必要性?我注意到许多编程语言都是这种情况,而不仅仅是 JavaScript。就像C中的这个例子一样.

最佳答案

告诉你的 friend 他们绝对错了。

[0, 0, 0, -1, -1, -1, 2, 2, 2, 7, 6, 5, 4, 3].sort(function(a, b) { return a > b })

-> [2, 0, 0, -1, -1, -1, 0, 2, 2, 3, 4, 5, 6, 7]

关于javascript - 使用比较函数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19040796/

相关文章:

javascript - 使用expo Camera SDK时,Undefined不是一个对象_expo.camera.constant

mysql - vb.net 按 X 轴日期排序图表

java - 对 Bean 的 Arraylist 的 Arraylist 进行排序

perl - 在 Perl 中,如何按值的频率排序?

javascript - 确保立即选择 iframe

javascript - 为什么对象上的相等运算符返回 false?

javascript - 使用 jQuery 更改下拉列表的选定值

ios - 如何修复无法将类型 'AnyObject' 的值转换为预期参数类型 '_?' 错误?

php - 按数组值对多维数组进行排序

javascript - 无穷大是javascript中的某个数字吗?