如何解决如何在它之外使用 for 循环值?
我在函数内部使用了 forEach 循环,但我想对调用该函数的用户使用名为 seenele 和 sadele 的值,我要他输入规则。 这可能吗?
这是代码...
**
let seen;
let sad;
let result;
onlyIf = (test,then) => {if(test) then()};
function dalla(seen,sad,rule){
seen.forEach(seenFunc);
function seenFunc(seenele){
sad.forEach(mainFunc);
function mainFunc(sadele){
onlyIf(seenele + sadele == 7,() => console.log(seenele,sadele))
}
}
}
dalla([1,2,4],[2,3,5,6])
**
解决方法
当然,只需将谓词作为参数传递即可:
function joinBy(a,b,rule) {
let result = [];
a.forEach(
itemA => b.forEach(
itemB => {
if (rule(itemA,itemB))
result.push([itemA,itemB])
}
)
);
return result;
}
console.log(
joinBy(
[1,2,4],[2,3,5,6],(x,y) => x + y === 7
)
)
进一步研究的更高级示例:
let pairs = (a,b) => a.flatMap(x => b.map(y => [x,y]));
let splat = f => x => f(...x);
let joinBy = (a,rule) => pairs(a,b).filter(splat(rule));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。