1. Array:

const arr = [1, 2, 4, 6];
for (const item of arr) {
  console.log(item);
}

输出:

2.  Set:

const s = new Set([1, 3]);
console.log(s);
for (const item of s) {
  console.log(item);
}

输出:

 3. Map:

const m = new Map();
m.set('name', 'Jack');
m.set('age', 18);
// for (const item of m) {
//   console.log(item);
// }
for (const [key, value] of m) {
  console.log(key, value);
}

输出:

4.  Object:

对于普通的对象,for...of结构不能直接使用,会报错,必须部署了 Iterator 接口后才能使用。

 普通对象使用for...of:

const obj = {
  name: 'Jack',
  age: 18
};
for (const item of obj) {
  console.log(item);
}

报错:TypeError: obj is not iterable。

部署了 Iterator 接口的对象使用for...of:

const obj = {
  store: [1, 2, 3],
  [Symbol.iterator]: function () {
    let index = 0;
    const _self = this;
    return {
      next() {
        const result = {
          value: _self.store[index],
          done: index >= _self.store.length
        };
        index++;
        return result;
      }
    }
  }
}
for (const item of obj) {
  console.log(item);
}

输出:

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐