1.Map
ES6中提供了Map数据结构,是键值对的集合
- 方法
方法 | 描述 |
---|---|
clear() | 移除Map对象的所有键/值对 |
delete(key) | 移除指定的元素 |
get(key) | 返回映射中的指定元素 |
set(value,value) | 添加一个新建元素到映射 |
has(key) | 判断是否存在指定元素,返回布尔值 |
size | 返回元素数量 |
- 示例
let map = new Map();
map.set('name','amy acker');
map.set(1,99);
console.log(map.size); //2
console.log(map.get('name')); //amy acker
console.log(map.has('name')); //true
console.log(map.delete('name')); //true
console.log(map.has('name')); //false
console.log(map.size); //1
map.clear();
console.log(map.size); //0
2.Set
ES6中提供了Set数据容器,是个能够存储无重复值的有序列表。
- 方法
方法 | 描述 |
---|---|
clear() | 移除Set对象,清空所有元素 |
delete(value) | 移除指定的元素,返回布尔值 |
add(value) | 添加元素,返回值是实例本身 |
has(value) | 判断是否存在指定元素,返回布尔值 |
size | 返回元素数量 |
- 示例
let set = new Set([1,2,2,3,4]);
console.log(set); //1,2,3,4
set.add(3);
set.add(5);
console.log(set); //1,2,3,4,5
console.log(set.size); //5
console.log(set.has(1)); //true
console.log(set.delete(1)); //true
console.log(set.has(1)); //false
console.log(set.size); //4
set.clear();
console.log(set.size); //0
- 注意:
//下面代码看起来是同一个键,实际上这两个值的内存地址是不一样的
map.set([], 1);
console.log(map.get([])); //undefined
//同理
set.add([]);
set.add([]);
console.log(set.size); //2
let arr = [];
set.add(arr);
set.add(arr);
console.log(set.size); //1