1. // 生成器和迭代器的作用
    2. var arr = [1, 2, 3, 4, 5];
    3. // forEach map filter some every reduce reduceRight
    4. // forEach 普通的数组遍历方法
    5. // map 映射 每次遍历返回一个数组元素 返回一个新的数组
    6. // filter 过滤 每一次遍历 返回bool 来决定当前元素是否纳入新的数组。
    7. // reduce 归纳 每一遍历 将元素收归到容器中。
    8. // reduceRight reduce的反向操作
    9. // every 判断是否每个元素都符合一个条件
    10. // some 判断是否有元素符合条件
    11. //
    12. // for 循环 while
    13. //
    14. // 遍历 一次性的对数组中的元素进行操作
    15. //
    16. // 希望遍历可操控 手动控制流程。 这个就是迭代的过程
    17. //
    18. //
    19. // 生成器是一个函数。
    20. // 迭代器是由生成器函数执行后带有next方法的对象
    21. // 生成器对迭代的控制是由yield关键字来执行的、
    22. //generator 有参数吗
    23. function * generator(){
    24. yield "name: wp",
    25. yield "age: 18",
    26. yield "hobby:hiking",
    27. return "to be continued";
    28. }
    29. const iterator = generator();
    30. console.log(iterator.next())
    31. //每次迭代器中的next方法执行就会
    32. function * gen (arr) {
    33. for(var i = 0; i < arr.length; i ++){
    34. yield arr[i];
    35. }
    36. return 'to be continued'
    37. }
    38. var arr = [1,2,3,4,5];
    39. function * gen (arr) {
    40. var nextIndex = 0;
    41. return {
    42. next:function(){
    43. return nextIndex < arr.length ?
    44. { value:arr[nextIndex++], done:false }:
    45. { value:arr[nextIndex++], done:true }
    46. }
    47. }
    48. }