javascript - 获取第一个函数调用匹配的返回值而不调用它两次

标签 javascript

我有一个函数引用数组。

我需要找到满足我的匹配条件的第一个函数调用的返回值。

如何避免调用匹配的函数两次?

var f = function(x) { if (x === 10) return "ten"; }
var g = function(y) { if (y === 20) return "twenty"; }

var result = [f, g].find(m => m(10))
if (result) return result(10)
// this returns "ten"

最佳答案

仍然不确定我是否完全理解您的问题。在我看来,您想遍历函数数组并在使用条件调用的函数为真时返回结果。

let fncaller = (fns, condition) => {
  var result
  for (var fn of fns) {
    result = fn(condition)
    if (result) { return result }
  }
}

关于javascript - 获取第一个函数调用匹配的返回值而不调用它两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486003/

相关文章:

javascript - 使用 jQuery 和 CSS 选择器选择嵌套元素的公共(public)父/祖先

javascript - 在 trentrichardson 时间选择器中设置默认时间

javascript - 如何在 html 上动态添加字段的 javascript 中匹配 id?

javascript - 来自 javascript 的 json 记录,espace 空记录

javascript - 如何将js脚本文件作为子进程node.js执行

javascript - 确定 div 的一侧

javascript - 如何在不按 Javascript 中的相关按钮的情况下自动执行按钮的某些操作(确定/提交)?

javascript - 如何制作 dijit.Dialog 非模态

javascript - 在更新时显示日志文件的内容

javascript - 我的 JavaScript 模式/实践很糟糕。我应该去哪里寻求帮助?