一、Set
当问到数组去重方式时,我们能想到的最简单的方法就是ES6中的Set;Set是一个数据容器,能够存储无重复值的有序列表
let arr = [1,2,3,1,2,3]
let arr_1 = Array.from(new Set(arr))
console.log(arr_1); // [1,2,3]
let arr_2 = [...new Set(arr)]
console.log(arr_2); // [1,2,3]
1、创建Set:new Set()
2、Set添加元素:set.add()
3、Set删除元素:set.delete()
4、判断Set中是否含有某个元素: set.has()
5、Set的长度:set.size
6、Set遍历输出:set.forEach
7、Set转化为数组:解构[...set]
let set = new Set([1,2,3,1,1,1,2]); // 创建Set
set.size; // 3
set.add(5); // Set(4) {1,2,3,5}
set.delete(1); // true
set.has(1); // false
set.forEach(el => { console.log(el) }); // 2 3 5
let [...arr] = set; // [2,3,5]
二、Map
Map类似于对象,但不同于对象的是,Map的key可以是任意数据类型
1、创建Map: new Map()
2、遍历:map.keys()键名;map.values()键值;map.entries()所有
3、Map的长度:map.size
4、设置键值对:map.set(a,1)
5、获取键值:map.get(a)
6、判断键是否存在:map.has(a)
7、删除键:map.delete(a)
8、删除所有键:map.clear()
9、Map转换为Array:[...map]
let map = new Map([['name','lily'],['age',25]]); // 创建Map
console.log(map); // Map(2) {'name'=>'lily', 'age'=>25}
map.set('gender','女'); // Map(3) {'name'=>'lily', 'age'=>25, 'gender'=>'女'}
map.size; // 3
map.get('name'); // 'lily'
map.delete('gender'); // true
console.log(map); // Map(2) {'name'=>'lily', 'age'=>25}
map.keys(); // {"name", "age"}
map.values(); // {"lily", 25}
map.entries(); // {"name" => "lily", "age" => 25}
map.has('gender'); // false
let arr = [...map];