// 生成器和迭代器的作用
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 }
}
}
}