ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标 具有iterable类型的集合可以通过新的for ... of循环来遍历。
1.Set
它类似于数组,但是成员的值都是唯一的,没有重复的值。所以我们可以用它进行数组去重。
let arr=[1,2,3,3,2,1];
let set=new Set(arr)
let newArr=Array.from(new Set(arr));
console.log(newArr); //[1,2,3]
set.size() //3 该length 属性的值为0。获取长度
set.add(4);//添加已有元素会将原来的元素覆盖,长度不变
set.delete(4);//删除元素
set.clear(); //从Set对象中删除所有元素
set.has(1); //true
set.has(4); //false
let obj={a:1,b:2};
set.add(obj);
set.has(obj); //true
//获取数组中最大值
let max=Math.max(...newArr);
复制代码
2.map
let map = new Map();
let a = {b: "Hello World"};
map.set(c, "content")
map.get(c) // "content"
map.set('c', '');//
map.get('c'); // '',由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值覆盖。
map.has(c) // true
map.delete(c) // true
map.has(c) // false
map.keys() //返回一个新Iterator对象,该对象包含按插入顺序排列的对象中每个元素的键Map
map.values() //返回一个新Iterator对象,该对象包含按插入顺序排列的对象中每个元素的值Map。
复制代码