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
类型,Array
、Map
和Set
都属于iterable
类型。具有iterable
类型的集合可以通过新的for ... of
循环来遍历。