什么是迭代器?
- 迭代器是一种特殊的对象 (迭代器是一个对象)
- 是一些专门为迭代过程设计的的专有接口 所有迭代器都next()方法
- 每一次调用都返回一个结果对象有二个属性值 一般都猜得到有 value 表示返回下一个的对像,另一个是doen 是一个布尔值 当没有数据值返回true
- 迭代器还会返回内部指针,会用来指向集合中的位置,每一次调用next()方法时 都会返回下一个可用的值,如果最后一个值返回在调用next()方法那么返回对象属性done的值为true 属性vauel则包含最终返回的值,
- 这个返回值不是数据集的一部分,他与函数返回值类似,是函数调用过程中最后一次调用者传递信息的方法,如果没有相关数据就返回undefined
function creatInerator(items) {
var i = 0;
return {
next() {
var done = i >= items.length;
var value = !done ? items[i++] : undefined;
return {
done,
value,
};
},
};
}
let iteror = creatInerator([1, 2, 3, 4]);
console.log(iteror.next());
console.log(iteror.next());
console.log(iteror.next());
console.log(iteror.next());
console.log(iteror.next());
console.log("=====================");
function* createIterator() {
yield 1;
yield 2;
yield 3;
}
let Iterator = createIterator();
console.log(Iterator.next());
console.log(Iterator.next());
console.log(Iterator.next());
console.log(Iterator.next());
什么是迭代器?
- 迭代器是一种特殊的对象 (迭代器是一个对象)
- 是一些专门为迭代过程设计的的专有接口 所有迭代器都next()方法
- 每一次调用都返回一个结果对象有二个属性值 一般都猜得到有 value 表示返回下一个的对像,另一个是doen 是一个布尔值 当没有数据值返回true
- 迭代器还会返回内部指针,会用来指向集合中的位置,每一次调用next()方法时 都会返回下一个可用的值,如果最后一个值返回在调用next()方法那么返回对象属性done的值为true 属性vauel则包含最终返回的值,
- 这个返回值不是数据集的一部分,他与函数返回值类似,是函数调用过程中最后一次调用者传递信息的方法,如果没有相关数据就返回undefined
function* createIterators(items) {
for (let i = 0; i < items.length; i++) {
yield items[i];
}
}
let Iterators = createIterators([1, 2, { name: "自夏" }]);
console.log(Iterators.next());
console.log(Iterators.next());
console.log(Iterators.next());
console.log(Iterators.next());
function* createIteratorss(items) {
items.forEach(item => {
yield items;
});
}
createIteratorss()