当前位置:网站首页>ES6 iterator explanation example
ES6 iterator explanation example
2022-08-02 03:59:00 【yorup】
Iterator
Iterator is an interface that provides a unified access mechanism for various data structures.Any data structure can complete the traversal operation as long as the lterator interface is deployed. ES6 adds the traversal method for...of.
The native data with the iterator interface are: Array, Arguments, Set, Map, String, NodeList.
The object does not have an iterator interface, but we can add one to it. The iterator is the method that comes with the data type, so add it to the object.One method is the iterator interface.
Be careful not to change the method name.Because for...of can only recognize the next() method.
Principle: Create a pointer object, pointing to the starting position of the data structure, the first time the ==next()== method is called, the pointer automatically points to the data structureThe first member, and then continue to call next(), the pointer moves backward until it points to the last member, without calling next() to return an object containing the value and done properties.
let arr = ["a","b","c"];let myIte = arr[Symbol.iterator]();//arr itself has an iterator interface, get this iterator interfaceconsole.log(myIte.next());//{value: "a", done: false}console.log(myIte.next());//{value: "b", done: false}console.log(myIte.next());//{value: "c", done: false}console.log(myIte.next());//{value: "undefined", done: true}const Stu = {title:"web2209",persons:["Zhang San","Li Si","Wang Wu"],[Symbol.iterator](){let i=0;return {next:()=>{if(i< this.persons.length){const Obj = {value: this.persons[i], done: false};i++;return Obj;}else{return {value: undefined, done: true};}}}}}The iterator interface method [Symbol.iterator]() is added to the object above, the following is the call, print it first
const Myite = Stu[Symbol.iterator]();console.log(Myite.next());console.log(Myite.next());console.log(Myite.next());console.log(Myite.next());
The following is to use for...of to traverse the values in the object
for(let v of Stu){console.log(v);}
边栏推荐
- (8) requests、os、sys、re、_thread
- 17. JS conditional statements and loops, and data type conversion
- Scrapy crawler encounters redirection 301/302 problem solution
- Introduction to PHP (self-study notes)
- About the apache .htaccess file of tp
- PHP有哪些杀手级超厉害框架或库或应用?
- 利用cookie获取admin权限 CTF基础题
- web渗透必玩的靶场——DVWA靶场 1(centos8.2+phpstudy安装环境)
- Alfa: 1 vulnhub walkthrough
- Shuriken: 1 vulnhub walkthrough
猜你喜欢
随机推荐
[trendsoft/capital]金额转中文大写库
hackmyvm: may walkthrough
17. JS conditional statements and loops, and data type conversion
(8) requests, os, sys, re, _thread
(1)Thinkphp6入门、安装视图、模板渲染、变量赋值
TCP communications program
kali安装IDEA
PHP8.2中字符串变量解析的新用法
hackmyvm: again walkthrough
解决uni-app 打包H5网站 下载图片问题
Various ways of AES encryption
13. JS output content and syntax
Eric靶机渗透测试通关全教程
CTF-网鼎杯往届题目
2.PHP变量、输出、EOF、条件语句
百度定位js API
(8) requests、os、sys、re、_thread
Alfa: 1 vulnhub walkthrough
vim编辑模式
Baidu positioning js API









