如何在Javascript中将lambda作为参数传递?

ala*_*a27 1 javascript lambda

我在 Javascript 中有一个很大的函数,我需要重复相同的逻辑,除了下面的行,这是不同的:

config.some(x => x.site === text)
Run Code Online (Sandbox Code Playgroud)

另一个函数会做同样的事情,但不是按 SITE 过滤,而是按 NAME 过滤:

config.some(x => x.name === text)
Run Code Online (Sandbox Code Playgroud)

我想将 SITE 或 NAME 作为参数传递给该方法。我怎样才能做到这一点?

我希望有这样的事情:

myMethod(lambda) {
   config.some(lambda === text)
}
Run Code Online (Sandbox Code Playgroud)

并像这样调用:

this.myMethod(x => x.site);
Run Code Online (Sandbox Code Playgroud)

Vla*_*dac 6

如果要传递参数名称,可以这样做:

myMethod(key) {
   config.some(x => x[key] === text)
}
myMethod('name');
Run Code Online (Sandbox Code Playgroud)

“lambda”传递实现如下所示:

myMethod(lambda) {
   config.some(x => lambda(x) === text)
}
const nameLambda = (x) => x.name;
myMethod(nameLambda);
Run Code Online (Sandbox Code Playgroud)