ES6中Map对象和Set对象

Map对象:保存键值对

Map方法:

var myMap = new Map();
	myMap.set('Yoona',27);// 添加新的键值对
	myMap.set('Jessica',28)
	console.log(myMap)

打印输出:


 

      console.log(myMap.size)// 2
    console.log(myMap.has('Yoona'))// true has()判断是否存在

    console.log(myMap.get('Jessica'))// 28 get()获取键对应的值



    console.log(myMap.keys())// 获取 myMap的键
	console.log(myMap.values())// 获取myMap的值
    console.log(myMap.entries())// 获取myMap的内容
myMap.delete('Yoona')
	console.log(myMap.get('Yoona'))// undefined
	console.log(myMap.has('Yoona'))// false 



myMap.clear();
	console.log(myMap.size)// 0
	console.log(myMap.has('Jessica'))// false

使用for...of迭代映射

var myMap = new Map();
	myMap.set('Yoona',27);// 添加新的键值对
	myMap.set('Jessica',28);
	for (var [key, value] of myMap) {
	  console.log(key + " = " + value);
	}
	for(var key of myMap.keys()){
		console.log(key);
	}
	for (var val of myMap.values()){
		console.log(val)
	}
	for(var [key,val] of myMap.entries()){
		console.log(key + '=' + val)
	}

使用forEach()迭代

var myMap = new Map();
	myMap.set('Yoona',27);// 添加新的键值对
	myMap.set('Jessica',28);
myMap.forEach(function(value, key) {
	  console.log(key + " = " + value);
	}, myMap)

Set对象:Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。

Set方法:

var mySet = new Set();
	mySet.add(1);
	mySet.add('Yoona');
	console.log(mySet)
	console.log(mySet.size);// 2
	console.log(mySet.has(1));// true
	mySet.delete('Yoona');//删除元素
	mySet.clear();// 清除所有元素

因为在Set中没有重复的key,所以可以用来数组去重.

var arr = [1,1,1,2,3,4,5,5];
	console.log(new Set(arr)) // [1,2,3,4,5]

Set的迭代跟Map一样;

ES6标准引入了新的iterable类型,ArrayMapSet都属于iterable类型。具有iterable类型的集合可以通过新的for ... of循环来遍历。

猜你喜欢

转载自blog.csdn.net/Hanhanyoona/article/details/82180336