zoukankan      html  css  js  c++  java
  • for of 和 for in 的区别

    1.遍历对象

    for ... of

            var obj = {
                a: 1,
                b: [],
                c: function () {}
                };
                for (var key of obj) {
                console.log(key);
                //出错
                //Uncaught TypeError: obj is not iterable
                }

    for ... in

            var obj = {
                a: 1,
                b: [],
                c: function () {}
                };
                for (var key in obj) {
                console.log(key);
                //打印
                // a 
                // b
                // c
                }

    2.遍历数组

    for ... of(打印的是值)

            var arr=[1,2,3]
            for(let i of arr){
                console.log(i)
            }
            //结果是
            //1
            //2
            //3

    for ... in(打印的是坐标)

            var arr=[1,2,3]
            for(let i in arr){
                console.log(i)
            }
            //结果是
            //0
            //1
            //2

    3.遍历map

    for ... of

            let map = new Map([["a", 1], ["b", 2], ["c", 3]]);
            for(let entry of map){
                console.log(entry)
            }
            //输出:
            //["a", 1]
            //["b", 2]
            //["c", 3]

    for ... in

            let map = new Map([["a", 1], ["b", 2], ["c", 3]]);
            for(let entry in map){
                console.log(entry)
            }
            //啥都不输出

    4.遍历set

    for ... of

            let set = new Set([1, 1, 2, 2, 3, 3]);
            for(let i of set){
                console.log(i);
            }
            //1
            //2
            //3

    for ... in

            let set = new Set([1, 1, 2, 2, 3, 3]);
            for(let i in set){
                console.log(i);
            }
            //啥都不输出

    5.总结

    1. for-of 无法遍历 不可迭代对象

    可迭代对象包括: Array,Map,Set,String,TypedArray,arguments等等

    1. for-of 遍历的是值,for-in遍历的是key

    一点点学习,一丝丝进步。不懈怠,才不会被时代所淘汰!

  • 相关阅读:
    $ [Contest #4]$求和 思博题
    洛谷$P1864 [NOI2009]$二叉查找树 区间$dp$
    洛谷$P4045 [JSOI2009]$密码 $dp$+$AC$自动机
    $bzoj2560$ 串珠子 容斥+$dp$
    洛谷$P1600$ 天天爱跑步 树上差分
    $loj526 [LibreOJ eta Round #4]$ 子集 图论
    $CF888G Xor-MST$ 最小生成树
    $bzoj4152 The Captain$ 最短路
    洛谷$P3645 [APIO2015]$雅加达的摩天楼 最短路
    $bzoj4722$ 由乃 搜索
  • 原文地址:https://www.cnblogs.com/fqh2020/p/15040167.html
Copyright © 2011-2022 走看看