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

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

  • 相关阅读:
    切换node版本
    vue 移动端组件
    vue 单元测试
    git
    每日日报
    每日日报
    每日日报
    01人月神话阅读笔记之三
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/fqh2020/p/15040167.html
Copyright © 2011-2022 走看看