ES6中的Map:

无重复值且有序的键值对Map数据集合,其中键可以是基本数据类型,也可以是对象数据类型,值可以是任意数据类型。
常用方法:
1、创建Map实例:
可以通过new Map()来创建,用Map.set方法添加数据,也可以通过二维数组来创建。
let map = new Map();
map.set("name","Archer");
map.set("age","30");
console.log(map);//{"name" => "Archer", "age" => "30"}
let data = [["name","archer"],["age",30]]
let map2 = new Map(data);
console.log(map2);//{"name" => "archer", "age" => 30}

2、获取数据
Map.get方法用来获取Map中的数据

console.log(map.get("name"));
//"Archer"

3、删除数据
Map.delete方法用来删除Map中的数据

map.delete("name");
console.log(map);//{"age" => "30"}

4、检查是否存在
Map.has方法用来检查Map中是否存在相应的数据

let h = map.has("age");
console.log(h);//true

5、清除所有
Map.clear方法用来清除Map中所有数据

map.clear();
console.log(map);//{}

6、forEach方法
Map.forEach方法用来遍历Map

map2.forEach((val,key,self) =>{
    console.log("val:" + val + " key:" + key);//val:archer key:name val:30 key:age
})

ES6中的Set:

无重复值的有序列表。

常用方法:
1、创建Set实例:

let set = new Set();
set.add("Archer");
set.add("30");
console.log(set);//{"Archer", "30"}
let data2 = ["Archer","30",30,31,31]
let set2 = new Set(data2);
console.log(set2);//{"Archer", "30", 30, 31}

将Set数据转换为数组:

let [...array1] = set2;
console.log(array1);//["Archer", "30", 30, 31]

总结:
同Map一样,Set同样有has、delete、clear方法。通过 size 属性来查看其中有多少个值。
不同的是,Set没有get方法,Map中添加数据是通过Map.set方法添加。而Set数据是通过Set.add方法添加,还有一点不同的是,Set中也有forEach方法,但forEach的第二个参数并不是索引,而是和第一个参数相同的当前数据项item。
Map一般用于数据存储,而Set一般用于获取数据交集、并集、差集


大象
211 声望6 粉丝