【发布时间】:2021-04-08 02:23:55
【问题描述】:
情况:我想用二进制加法调用reduce。
理想的是简洁,语法优雅,即,
arr.reduce( + , 0 )
但这实际上并没有像写的那样工作。我在网上看到的例子往往更像
arr.reduce( (a, b) => a+b, 0 ).
这行得通,但感觉应该有一种更简单、更“优雅”的方式来做像二进制加法这样简单的事情。
问题:有没有什么方法可以避免定义一个完整的匿名函数来告诉reduce我想要二进制加法?
【问题讨论】:
-
不,不可能,很遗憾。
-
你能做的最好的就是写一个可以用作
arr.reduce(binOp("+"), 0)的辅助函数 -
只是为了好玩:你可以这样做:
const ???? = (a, b) => a + b;,这样你就可以写:arr.reduce(????, 0)。 (它使用Lycian letter H 作为函数名,肯定会让每个读过你的代码的人感到困惑,包括未来的你!)
标签: javascript lambda functional-programming operators binary-operators