javascript - 带循环的 ES6 箭头符号

标签 javascript recursion ecmascript-6 arrow-functions

考虑以下代码:

f=(m,c)=>{m?c()&f(--m,c):0}

(感谢 zzzzBov 的这个小金 block )

这是一个无“for”的循环

以及以下内容:

a=b=>b+1

鉴于这两个片段,以及以下事实:

z = 0; f(10,a(z));

我希望 z 等于 10,但在 JavaScript 控制台中返回以下 "TypeError: c is not a function",如何将此代码更改为确保循环继续进行,而不必求助于 whilefor 循环?

我问这个是出于教育目的...希望我能深入了解可以做什么...

最佳答案

函数 f 有两个参数:m,要迭代的数字,和 c,要调用的函数 m 次。这意味着第二个参数 c 应该是一个函数。例如:

f=(m,c)=>{m?c()&f(--m,c):0}


f(15, function() {
 console.log("Hello")
})

这将遍历 c 函数 15 次,调用 console.log 15 次。

当然,要在第二位实现你想要的,你可以使用这个:

z=0, f(10,()=>z++)

这将是一个将 z 增加 1 的常规箭头函数

看一下代码on babel

希望我能帮上忙!

关于javascript - 带循环的 ES6 箭头符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552160/

相关文章:

javascript - 使用 PHP GET 方法更改 js 代码中的值,是否可能?

javascript - 如何在 grid-auto-flow :column stick to each other? 中制作自动放置 div

c - 递归函数C排名

javascript - React 错误 - 未捕获的不变违规 : Element type is invalid

javascript - 创建相同大小的弧,其上具有不同的标签/文本

javascript - 匹配正则表达式德语

java - 递归帕斯卡三角算法的多个时间复杂度解决方案?

algorithm - 使用递归树方法求解带分数的递归方程

javascript - 自下而上的树遍历

javascript 内循环问题