zoukankan      html  css  js  c++  java
  • 迭代器: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,输出值列

    夹具
  • 相关阅读:
    调用外部程序主窗体做子窗体
    查看window编码
    c# 数据库更新和界面刷新的问题
    c# datagridview代码(网上的)
    winform DataGridView控件的打印
    西电ubuntu更新软件源
    C++ primer 学习笔记(2):函数
    C++ Primer 学习笔记(1)——迭代器,数组
    查询表属于哪个数据
    oracle 实用语句
  • 原文地址:https://www.cnblogs.com/jilaokang/p/8641542.html
Copyright © 2011-2022 走看看