首页 > 解决方案 > 如何在Javascript中将lambda作为参数传递?

问题描述

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

config.some(x => x.site === text)

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

config.some(x => x.name === text)

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

我希望有这样的事情:

myMethod(lambda) {
   config.some(lambda === text)
}

并调用:

this.myMethod(x => x.site);

标签: javascriptlambda

解决方案


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

myMethod(key) {
   config.some(x => x[key] === text)
}
myMethod('name');

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

myMethod(lambda) {
   config.some(x => lambda(x) === text)
}
const nameLambda = (x) => x.name;
myMethod(nameLambda);

推荐阅读