javascript - 如何将更多参数传递给自定义 sort() 函数?

标签 javascript parameters sorting optional-parameters

我有一个对象数组,需要根据自定义函数进行排序。因为我想在多个对象属性上多次执行此操作,所以我想将属性的键名称动态传递到自定义排序函数中:

function compareOnOneFixedKey(a, b) {
    a = parseInt(a.oneFixedKey)
    b = parseInt(b.oneFixedKey)
    if (a < b) return -1
    if (a > b) return 1
        return 0
}
    
arrayOfObjects.sort(compareByThisKey)

这应该变成这样:

function compareOnKey(key, a, b) {
    a = parseInt(a[key])
    b = parseInt(b[key])
    if (a < b) return -1
    if (a > b) return 1
        return 0
}
arrayOfObjects.sort(compareOn('myKey'))

这能以方便的方式完成吗?

最佳答案

你可以添加一个包装器:

function compareOnKey(key) {
    return function(a, b) {
        a = parseInt(a[key], 10);
        b = parseInt(b[key], 10);
        if (a < b) return -1;
        if (a > b) return 1;
        return 0;
    };
}

arrayOfObjects.sort(compareOnKey("myKey"));

关于javascript - 如何将更多参数传递给自定义 sort() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14491695/

相关文章:

javascript - 带有守卫的 Lesscss Mixins。语法错误

java - 将数据/字符串从 Maven 传递到 Java/JUnit 应用程序?

javascript - localeCompare 与 ASCII 风格的字典序排序

javascript - 如何获取 Sencha Touch 中的关联商店?

javascript - Angular : ng-model directive not working with `<span>` element

javascript - 当单选按钮已被选择时更改选项卡颜色

magento - 当我有唯一的 URL 参数时,如何让 Magento 提供页面的缓存版本?

java - 三元运算符的多个参数

c# - 如何在方法中将属性和排序顺序作为参数传递给排序列表

python - 如果不关心语言环境,在 Python 中对字符串进行排序的最快方法是什么?