迭代器
迭代器是一种借口,为各种不同的数据结构提供统一的访问机制
任何数据结构只要部署了接口就可以完成遍历操作
迭代器的原理:
自定义迭代器
用于遍历对象中的某个数组
//自定义迭代器 目的 只遍历对象games中的roles数组
const games = {
name: 'sanguosha',
roles: ['诸葛亮', '刘备', '孙权', '曹操'],
[Symbol.iterator]() {
let index = 0;
let _this = this; //小技巧可以获得Symbol.iterator的this值
return {
next: function() {
if (index < _this.roles.length) {
let result = {
value: _this.roles[index],
done: false
}
index++;
return result;
} else {
let result = {
value: undefined,
done: true
}
return result;
}
}
}
}
}
for (let v of games) {
console.log(v);
} //games对象中不含有iterator函数可以自己添加并定义该函数