考虑以下代码:
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"
,如何将此代码更改为确保循环继续进行,而不必求助于 while
或 for
循环?
我问这个是出于教育目的...希望我能深入了解可以做什么...
最佳答案
函数 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/