gpt4 book ai didi

JavaScript 命名排序函数

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:51 24 4
gpt4 key购买 nike

我想知道是否可以将命名函数传递给 Array.sort()。我正在尝试执行类似以下逻辑的操作,但显然它会提示 a 未定义。

if (iWantToSortAscending) {
myArray.sort(sortAscending(a, b));
} else {
myArray.sort(sortDescending(a, b));
}

// my lovely sort functions
function sortAscending(a, b) {
...
sorty worty
...
}

function sortDescending(a, b) {
...
sorty worty differently
...
}

显然,我可以让代码像下面这样工作,而且确实如此,但为了可读性和调试,我宁愿不使用匿名函数。

if (iWantToSortAscending) {
myArray.sort(function (a, b) {
...
sorty worty
....
}
} else {
...

最佳答案

当然可以,但是您必须引用该函数,而不是调用它,并且参数是自动传递的

myArray.sort(sortAscending);

无论何时向函数添加括号和参数,它都会立即被调用。
当您希望它被另一个函数调用时,例如作为 sort() 中的回调,您可以引用它,并省略括号。

关于JavaScript 命名排序函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28041439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com