遍历器接口
Posted 专注前端开发
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历器接口相关的知识,希望对你有一定的参考价值。
Symbol是种新的数据类型,表示独一无二,通常用于定义对象的属性名,[Symbol()]。
一、什么是遍历器接口?
一个数据结构有遍历器接口的特征是:它有Symbol.iterator属性,它有next()方法,返回一个包含value和done属性的对象。
原生具备遍历器接口的数据结构:Array,Map,Set,String,TypedArray,函数的arguments对象,NodeList对象。
//遍历数组 const arr = [1,2,3,4,5]; var a = arr[Symbol.iterator](); a.next();
二、自定义函数生成遍历器接口
const myObj = {}; myObj[Symbol.iterator] = function () { return { next: function () { return { value: 1, done: true } } } } myObj[Symbol.iterator]().next()
const myObj = { [Symbol.iterator] : function () { return { next: function () { return { value: 1, done: true } } } } } myObj[Symbol.iterator]().next()
三、generator函数生成遍历器对象
const myObj = {}; myObj[Symbol.iterator] = function * demoFn(){ yield [‘name‘, ‘Camille‘]; yield [‘age‘, 26] } for (let [key, value] of myObj) { console.log(`${key}: ${value}`); }
const myObj={ * [Symbol.iterator]() { yield [‘name‘, ‘Camille‘]; yield [‘age‘, 26] } } for (let [key, value] of myObj) { console.log(`${key}: ${value}`); }
以上是关于遍历器接口的主要内容,如果未能解决你的问题,请参考以下文章