javascript - 在 JavaScript 中对函数数组进行排序

标签 javascript arrays sorting

我想创建一个对函数进行排序并调用它的函数。问题是每个函数可能有不同数量的参数,并且这些参数必须在排序之前传递。例如:

function sortFunciton(arrayOfFunctions) {

}

mySortedFunction = sortFunction([function1('a', 'b'), function2('a'), function3('a','b','c')])

问题是,如果我像这样传递数组,我已经传递了函数的值,但我不希望这些函数在排序之前执行,因为它们的计算量很大,所以只需必须执行一个,这就是我排序的原因。

有没有办法这样传递:

mySortedFunction = sortFunction([function1.args('a', 'b', 'c')], function2.args('a'), function3.args('a', 'b', 'c')])

然后做

mysortedFunction.callWithArgs()

最佳答案

您可以使用 Function.prototype.bind 传递带有某些绑定(bind)参数的未调用函数引用:

function selectFunc(funcArray) {
  //some selection criteria
  return funcArray[0];
}

mySelectedFunc = selectFunc([function1.bind(null, 'a', 'b'), function2.bind(null, 'a'), function3.bind(null, 'a','b','c')]);

mySelectedFunc() //equivalent of running function1('a', 'b')

关于javascript - 在 JavaScript 中对函数数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41625971/

相关文章:

javascript - 如何在 onchange 函数之后将值加载到输入中

C++ 地址存在吗?

java - 递归选择排序 (Java Eclipse Neon 2)

数组中的 Javascript 标点返回 'undefined'

c - 2D 数组索引分配

C - 链表排序无限循环

javascript - 按多个属性对对象数组进行排序

javascript - 没有 onclick for button, div, img with IE 9

javascript - 使用变量本身为变量分配新值

javascript - 在express.js 中使用 Pug-Jade 将内容附加到已渲染的页面