将ES5数组方法与ES6生成器一起使用

莱斯利

将新的ES5数组函数与ES6生成器一起使用的正确方法是什么?我必须先将可迭代对象显式转换为数组,还是有更好的方法?例如:

function* range(low, high) {
    var i = low;
    while(i < high)
        yield i++;
}

// Sum of numbers in range, doesn't work
console.log(range(0, 10).reduce((x,y) => x + y));
乔斯

生成器函数返回Iterator对象。迭代器API不包括高次阵列的方法,例如mapreduce等等,因此需要建立一个中间阵列(或使用像库wu.js)。

您可以使用传播运算符从(有限)迭代器中简洁地构建一个数组:

var sum = [...range(0, 10)].reduce((e, i) => e + i)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章