// 生成器和迭代器的作用var arr = [1, 2, 3, 4, 5];// forEach map filter some every reduce reduceRight// forEach 普通的数组遍历方法// map 映射 每次遍历返回一个数组元素 返回一个新的数组// filter 过滤 每一次遍历 返回bool 来决定当前元素是否纳入新的数组。// reduce 归纳 每一遍历 将元素收归到容器中。// reduceRight reduce的反向操作// every 判断是否每个元素都符合一个条件// some 判断是否有元素符合条件//// for 循环 while // // 遍历 一次性的对数组中的元素进行操作// // 希望遍历可操控 手动控制流程。 这个就是迭代的过程// //// 生成器是一个函数。// 迭代器是由生成器函数执行后带有next方法的对象// 生成器对迭代的控制是由yield关键字来执行的、//generator 有参数吗 function * generator(){ yield "name: wp", yield "age: 18", yield "hobby:hiking", return "to be continued"; } const iterator = generator(); console.log(iterator.next()) //每次迭代器中的next方法执行就会 function * gen (arr) { for(var i = 0; i < arr.length; i ++){ yield arr[i]; } return 'to be continued' }var arr = [1,2,3,4,5];function * gen (arr) { var nextIndex = 0; return { next:function(){ return nextIndex < arr.length ? { value:arr[nextIndex++], done:false }: { value:arr[nextIndex++], done:true } } }}