美文网首页
JS - for in 和 for of 的遍历顺序

JS - for in 和 for of 的遍历顺序

作者: 恒星的背影 | 来源:发表于2022-04-01 22:19 被阅读0次

    for in

    在 ECMA-262 中没有明确规定此行为,只说取决于实现。现在的普遍实现是先把当中的非负整数键提出来,排序好输出,然后将剩下的按定义时的顺序输出。

    var data = {
         '4': '',
         '3': '',
         '2': '',
         '1': '',
     };
     for (var i in data) {
         console.log(i)    
     }
    // 1
    // 2
    // 3
    // 4
    
    var obj = {
      'first': '',
      'zoo': '',
      '2': '',
      '34': '',
      '1': '',
      'second': '',
    };
    for (var i in obj)
      console.log(i);
    // 1
    // 2
    // 34
    // first
    // zoo
    // second
    

    参考
    for in 循环的输出顺序问题 - 司徒正美 - 博客园

    for of

    对Set和Map,for of 遍历的顺序是按照各个成员被添加进数据结构的顺序。

    var es6 = new Map();
    es6.set(3, 6);
    es6.set(2, "TC39");
    es6.set(1, "ECMA-262");
    for (var [name, value] of es6) {
      console.log(name + ": " + value);
    }
    // 3: 6
    // 2: TC39
    // 1: ECMA-262
    

    参考
    Iterator 和 for...of 循环 - ECMAScript 6入门

    相关文章

      网友评论

          本文标题:JS - for in 和 for of 的遍历顺序

          本文链接:https://www.haomeiwen.com/subject/dklzjrtx.html