迭代器

雨燕双飞 提交于 2019-12-01 09:13:01

1、迭代器用于统一机制,这种机制允许我们调用next()方法,每次调用都会返回一个对象{value,done},当完成迭代后done值为true,value每次获取的元素
(1)手动使用

let iterator = array.values();
let item ;
	while(!(item = iterator.next()).done){
		console.log(item.value);
	}

(2)使用for-of协助

let iterator = array.values();
			for(let v of iterator){
				console.log(v);
			}

(3)使用for-of直接遍历可以迭代的对象

for(let v of array){
				console.log(v);
			}

(4)如何将一个普通对象变成一个可以迭代的对象

let obj = {name:"terry",age:12}
// 如何获取一个迭代器
obj[Symbol.iterator] = [][Symbol.iterator]
// 将对象转换为set
new Set(obj)

2、具有迭代器
Array Set Map String 类数组对象 Arguments NodeList

3、迭代器是如何添加到Set,Map,Array…这些数据结构上的?

var o = {
	name:"terry",
}
o.iterator = iterator;
o.iterator = "hello"

Symbol()
这个函数可以产生一个特殊符号,这个符号可以用于key,通过这个key找见对应的函数。这个key好处在于它是隐式的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!