• 迭代器:for-in&&for-of和神级forEach


    递归是重复调用函数自身实现循环。
    迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。



    ### 数组 我们知道数组的定义是`a = new Array()`,然后对于给予赋值`a = [1, 2, 3]`。 得出a是Array所new 的一个对象,他的每个元素被视为一个`属性值`,从`0`开始对其索引。

    for-in 方法

    prop in object -MDN
    采用for-in对数组对象a进行遍历

    var a = [1, 2, 3];
    
    for(let i in a){
        console.log(a[i]);
        // 打印出 1 2 3  
        
        console.log(i);
        // 打印出 0 1 2
    } 
    

    当我们给予对象a新的属性时候又会是怎样的效果?

    var a = [1, 2, 3];
    a.name = "kaso";
    
    for(let i in a){
        console.log(a[i]);
        // 打印出 1 2 3 kaso 
        
        console.log(i);
        // 打印出 0 1 2 name
    } 
    

    可以看到for-in语句将对象a中所有的属性都遍历的一遍,但是如果我们想要的只是将数组中进行遍历又要怎么写呢?



    for-of 方法

    仅打印出集合内的元素。

    var a = ['A', 'B', 'C'];
    a.name = 'Hello';
    
    for (var x of a) {
        console.log(x); // 'A', 'B', 'C'
    }
    


    forEach 方法

    a=new Map;
    a=[5,1,2,["name","kaso"],["age",20]];
    
    a.forEach(function (element, index, array) {
        // element: 指向当前元素的值
        // index: 指向当前索引
        // array: 指向Array对象本身
        console.log(`${element}, index = ${index}`);
        console.log(`array`)
    });
    
    /*
    * 输出结果
    * 5, index = 0
    * 1, index = 1
    * 2, index = 2
    * name,kaso, index = 3
    * age,20, index = 4
    * 5 1 2 name kaso age 20
    */
    

    key等同于array,输出值列

    夹具
  • 相关阅读:
    2、函数
    二者取其一(初遇)_网络流
    P1879 [USACO06NOV]玉米田Corn Fields
    P2831 愤怒的小鸟
    P2296 寻找道路
    序(不知道是什么时候的模拟题)
    P2243 电路维修
    P1273 有线电视网
    P2613 【模板】有理数取余
    P1373 小a和uim之大逃离
  • 原文地址:https://www.cnblogs.com/jilaokang/p/8641542.html
Copyright © 2020-2023  润新知