javascript - 如何在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);
解决方案
如果要传递参数名称,可以这样做:
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);
推荐阅读
- python - 为什么简单回归的 TensorFlow 结果与其输入相去甚远?
- azure - Azure 应用程序洞察力。自定义属性长度限制
- c++ - std::string 类成员被第三方宏记录的字符串文字损坏
- rust - 为什么联合上的模式匹配会出现无法访问的模式警告?
- c++ - opencv desktop capture returns only part of the screen on windows in large fonts mode
- javascript - Match string entries by regexp and create splitted array in javascript
- node.js - Node.js AWS Lambda不一致s3.putObject上传大数据对象
- javascript - JQuery/CSS 气泡鼠标悬停
- python-3.x - Python - Check if String is in Dictionary Value when Value is a list
- ajax - 表单POST上的DoesNotExist异常后,同一页面上的Django ajax警告