• for...in的改进版for...of


    for...in 用起来似乎还不错,为什么又弄个 for...of 呢?

    来看个例子:

    'user strict'
    var arr = [12,13,14,15,16];
    for(var i in arr){
        console.log(i);
    }
    // 遍历结果为0 1 2 3 4(仅为数组下标)

     for...of 这里就体现出优势了

    同样的例子将 for...in 换成 for...of 就可直接遍历数组元素的内容

    'user strict'
    var arr = [12,13,14,15,16];
    for(var i of arr){
        console.log(i);
    }
    // 遍历结果为0 1 2 3 4(仅为数组下标)

    遍历 Array 可以采用下标循环,遍历 Map 和 Set 就无法使用下标。为了统一集合类型,ES6标准引入了新的 iterable 类型,ArrayMap 和 Set 都属于 iterable 类型

    for..of 则可专门针对 iterable 类型进行遍历

    再看个比较典型的例子:

    var arr = [12,13,14,15,16];
    arr.attr = 'as';
    for(var i in arr){
        console.log(arr[i]);
    }
    // 结果 12 13 14 15 16 as(for...in不仅遍历出arr数组的元素还把arr的属性也遍历出来)

    这里使用 for...of 仅遍历数组元素

    var arr = [12,13,14,15,16];
    arr.attr = 'as';
    for(var i of arr){
        console.log(i);
    }
    // 结果 12 13 14 15 16(不会出现 for...in 的情况)
  • 相关阅读:
    Socket原理与编程基础
    Hello cnblogs
    c# List 分页问题
    chrome下载Word失败问题
    前端时间Date显示问题踩坑
    Vue跳转同一界面多次,使用不同数据进行渲染
    Hadoop在Linux环境下的配置
    RabbitMQ下载安装
    Codeforces 527 C. Glass Carving
    python压缩、解压文件
  • 原文地址:https://www.cnblogs.com/MirageFox/p/9767226.html
Copyright © 2020-2023  润新知