我们可以使用传统的forEach()函数来遍历Set数据结构。
如果我们用forEach()函数来遍历数组的话,第一个参数是数组里的每一个元素,第二个参数是元素的索引(从0开始)。
所以对于Set数据结构,也应该是这样。
不过Set中没有索引的概念,它实际上是键和值相同的集合,第二个参数表示的是键。也就是说第一个参数和第二个参数一模一样。
let set = new Set([1,2,'hello']); set.forEach((item,index) => { console.log(item,index); }); // 1 1 // 2 2 // hello hello
我们除了可以用forEach()函数,还可以使用以下3种函数对Set实例进行遍历。
①keys():返回键名的遍历器
②values():返回键值的遍历器
③entries():返回键值对的遍历器
通过上面三个函数获得的对象都是遍历器对象Iterator,然后通过for…of循环来获取每一项的值。
因为Set实例的键和值是相等的,所以keys()和values()返回的是相同的值。
let set = new Set(['red','green','blue']); for(let item of set.keys()) { console.log(item); } // red // green // blue for(let item of set.values()) { console.log(item); } // red // green // blue for(let item of set.entries()) { console.log(item); } // ["red","red"] // ["green","green"] // ["blue","blue"]