【发布时间】:2018-01-24 07:27:19
【问题描述】:
我有这个递归生成器
var obj = [1,2,3,[4,5,[6,7,8],9],10]
function *flat(x) {
if (Array.isArray(x))
for (let y of x)
yield *flat(y)
else
yield 'foo' + x;
}
console.log([...flat(obj)])
它工作正常,但我不喜欢for 部分。有没有办法在功能上编写它?我试过了
if (Array.isArray(x))
yield *x.map(flat)
这没用。
有没有办法在没有for循环的情况下编写上述函数?
【问题讨论】:
标签: javascript ecmascript-6 generator yield