我是靠谱客的博主 饱满舞蹈,这篇文章主要介绍JS iteratorJS Iterator,现在分享给大家,希望可以做个参考。

JS Iterator

Create Custom Iterator next : () =>

function iterator(){
let step = 0;
return {
next : ()=>{
step ++;
if (step ==1 ){
return {value : 'cake', done : false};
}
if (step ==2
){
return {value : 'yogurt', done : false};
}
if (step == 3) {
return {value : 'bread', done : false};
}
else{
return {value : undefined, done :true}
}
}
};
}
const it = iterator();
console.log(it);
// { next: [Function: next] }
console.log(it.next()); // {value : 'cake', done : false};
console.log(it.next()); // {value : 'yogurt', done : false};
console.log(it.next());
// {value : 'bread', done : false};
console.log(it.next());
// {value : undefined, done :true}

The same result for next(){} below

function iterator(){
let step = 0;
return {
next() {
step ++;
if (step ==1 ){
return {value : 'cake', done : false};
}
if (step ==2
){
return {value : 'yogurt', done : false};
}
if (step == 3) {
return {value : 'bread', done : false};
}
else{
return {value : undefined, done :true}
}
}
};
}
  • Output
inakamono@ninja MINGW64 ~
$ node iterator-test.js
{ next: [Function: next] }
{ value: 'cake', done: false }
{ value: 'yogurt', done: false }
{ value: 'bread', done: false }
{ value: undefined, done: true }

Spread operator …iterator

function iterator(){
let step = 0;
return {
next : ()=>{
step ++;
if (step ==1 ){
return {value : 'cake', done : false};
}
if (step ==2
){
return {value : 'yogurt', done : false};
}
if (step == 3) {
return {value : 'bread', done : false};
}
else{
return {value : undefined, done :true}
}
}
};
}
const my_it = {}
my_it[Symbol.iterator] = iterator;
console.log(...my_it);
// cake yogurt bread

with this

function iterator(){
let step = 0;
return {
prefix : "delicious",
next() {
step ++;
if (step ==1 ){
return {value : this.prefix + ' cake' , done : false};
}
if (step ==2
){
return {value : this.prefix + ' yogurt', done : false};
}
if (step == 3) {
return {value : this.prefix + ' bread', done : false};
}
else{
return {value : undefined, done :true}
}
}
};
}
const it = iterator();
console.log(it);
// { prefix: 'delicious', next: [Function: next] }
console.log(it.next()); //{ value: 'delicious cake', done: false }
console.log(it.next()); // { value: 'delicious yogurt', done: false }
console.log(it.next());
// { value: 'delicious bread', done: false }
console.log(it.next());
// { value: undefined, done: true }

最后

以上就是饱满舞蹈最近收集整理的关于JS iteratorJS Iterator的全部内容,更多相关JS内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(113)

评论列表共有 0 条评论

立即
投稿
返回
顶部