【发布时间】:2017-11-19 07:41:29
【问题描述】:
假设我们有这个生成器函数(生成器 fn 返回一个迭代器):
function* foo(){
yield 1;
yield 2;
yield 3;
}
for (let i of foo()) {
console.log(i);
}
我们可以使用for..of 循环遍历迭代器。
我的问题是:有没有办法创建一个函数式 for 循环来像使用数组一样迭代迭代器?
[1,2,3].forEach(function(i){
// we have our own block scope for each item in the iterable
});
我们最好的选择是这种技术吗?
for (let i of foo()) {
(function(i){
})(i);
}
看来一定有更简单的方法
【问题讨论】:
-
Array.from(...iterable...).forEach(),也许吧? -
你知道
let有一个block scope -
WTH 是“函数式for循环”吗?你有什么问题
for (let i of foo())没有解决? -
Functional for-loop 是一个包罗万象的短语,用于循环结构,如 map / filter / forEach。
-
但是是的,我对
for..of不是很熟悉,但也许它适用于块范围的 let 变量 - 直到你转换为 es5 :)
标签: javascript node.js