1.Set
ES6 提供了新的数据结构 Set(集合)。它类似于数组,但成员的值都是唯一的,集合实现了 iterator接口,所以可以使用『扩展运算符』和『for...of...』进行遍历,集合的属性和方法:
1. size 返回集合的元素个数;
2. add 增加一个新元素,返回当前集合;
3. delete 删除元素,返回 boolean 值;
4. has 检测集合中是否包含某个元素,返回 boolean 值;
5. clear 清空集合,返回 undefined;
Set中的各种操作代码实现:
let arr = [1, 2, 3, 4, 5, 4, 3, 2, 1];
// 1.数组去重
let result = [...new Set(arr)];
console.log(result);
// 2.交集
let arr1 = [3, 3, 2, 45, 5, 6, 7, 8];
let result1 = [...new Set(arr)].filter(item => {
let arr11 = new Set(arr1);
return arr11.has(item);
})
console.log(result1);
// 3.并集
let result2 = [...arr, ...arr1];
result2 = [...new Set(result2)];
console.log(result2);
// 4.差集
let result3 = [...new Set(arr)].filter(item => !(new Set(arr1).has(item)));
console.log(result3);
2.Map
概述:
ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用『扩展运算符』和『for...of...』进行遍历;
Map 的属性和方法:
1. size 返回 Map 的元素个数;
2. set 增加一个新元素,返回当前 Map;
3. get 返回键名对象的键值;
4. has 检测 Map 中是否包含某个元素,返回 boolean 值;
5. clear 清空集合,返回 undefined;
Map的各种操作代码实现:
// 声明Map
let map = new Map();
// 添加元素
map.set("name", "wusuqin");
map.set("change", () => console.log("我们可以改变你"))
let key = {
school: "university"
};
map.set(key, ["南京", "泰州", "广州", "东莞"]);
console.log(map);
上述代码表示对象也可以作为我们的键名,键名可以为对象,字符串,数值等
// 查看长度
console.log(map.size);
// 删除
console.log(map.delete(key));
console.log(map);
// 获取
console.log(map.get(key));
// 清空
map.clear();
console.log(map);
//遍历
for (let v of map) {
console.log(v);
}