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

2022-04-01  本文已影响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入门

上一篇下一篇

猜你喜欢

热点阅读