迭代器(iterator):是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署lterator接口,就可以完成遍历操作。
迭代器对象一旦被建立,就可以通过显式的重复调用next(),或者使用JavaScript的 for…in 和 for each 循环隐式调用。本内容只介绍next();
const arr = ['111', '222', '333'] for (let item of arr) { console.log(item) } let iterator = arr[Symbol.iterator]() console.log(iterator); console.log(iterator.next()); console.log(iterator.next()); console.log(iterator.next());
打印效果:
应用:
const school = { name: '123学院', students: [ 'NanChen', 'Sunmouwei', 'Jiangmouyu', ], [Symbol.iterator](){ let index = 0; return { next:()=>{ if(index < school.students.length){ let res = { value:this.students[index], done:false } index++; return res; }else { return { value:undefined, done:true, } } } } } } for (let item of school) { // 或者使用for(let item of school.students){也是可以的 console.log(item) }
打印效果: