let arr1 = [1, 2, 3]
let iterator = arr1[Symbol.iterator]()
console.log(iterator.next()) // { value: 1, done: false }
console.log(iterator.next()) // { value: 2, done: false }
console.log(iterator.next()) // { value: 3, done: false }
console.log(iterator.next()) // { value: undefined, done: false }
// 迭代器实现 可以使用下面的Generator函数简化
function makeIterator (array) {
let index = 0;
return {
next: function () {
return index < array.length ?
{ value: array[index++], done: false } :
{ value: undefined, done: true };
}
};
}
let it = makeIterator([4, 5]);
console.log(it.next()) // { value: 4, done: false }
console.log(it.next()) // { value: 5, done: false }
console.log(it.next()) // { value: undefined, done: true }
// Generator 生成器 用于生成一个迭代器对象
function* makeIterator1 (arr) {
let index = 0
while (index < arr.length) {
yield arr[index++]
}
}
let it1 = makeIterator1([6, 7, 8])
console.log(it1.next()) // { value: 6, done: false }
console.log(it1.next()) // { value: 7, done: false }
console.log(it1.next()) // { value: 8, done: false }
console.log(it1.next()) // { value: undefined, done: true }
JavaScript之迭代器Iterator
最新推荐文章于 2024-03-20 08:45:12 发布