- interator 遍历器
通过指针移位来遍历集合的 next() {value:0,done:true} value:指值 done:指是否遍历结束 true false
{
let myInterator = (args) => {
let index = 0;
return {
next() {
return { value: args[index++], done: index < args.length ? false : true };
}
}
}
let arr = [12, 3, 4, 5, 6, 7];
let inter = myInterator(arr);
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
}
- es6里面规定部署interator接口遍历器
Symbol.interator 接口部署遍历器
部署遍历器:
{
let obj = {
name: '11',
age: "12",
[Symbol.iterator]() {
let that = this;
let keys = Object.keys(that);
console.log(keys);
let index = 0;
return {
next() {
return keys[index] ? {
value: that[keys[index++]],
done: false
} : { value: undefined, done: true }
}
}
}
}
console.log(obj);
let interator = obj[Symbol.iterator]();
console.log(interator.next());
console.log(interator.next());
console.log(interator.next());
console.log(interator.next());
}
- 检测默认具有的 iterator
{
let arr = [1, 2, 3, 4];
console.log(arr);
let inter = arr[Symbol.iterator]();
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
console.log(inter.next());
}