一、ES6中的 Set 方法
1、使用ES6的 Set 方法去重:
Set 集合:类似于数组的集合,但是成员的值都是唯一的,可自动去重
Set 创建:new Set(值) 但是的出来的结果不是一个数组
let arr = [1, 2, 2, 3, 5, 3, 6, 1]
let res = new Set(arr)
console.log(res) // 1,2,3,5,6 类似于数组的集合
console.log(Array.from(res)) // 1,2,3,5,6
Array.from(数组) :把所有数据都可以转化为数组
2、Set的操作方法:
添加:res.add(值)
删除:res.delette(值)
判断值是否存在:res.has(值)
删除所有值:res.clear()
let res = new Set()
res.add(100)
res.delete(100)
res.has(100)
res.clear()
二、ES6中的 Map 方法
1、Map概念:
Map() 映射:类似于对象的数据集合,把对象变得跟强大,可以使用 for of 遍历
2、Map的操作方法:
创建:new Map( )
设置成员:set(key,value)
获取某一个成员:get(key)
检查一个成员是否存在:has(key)
删除一个成员:delete(key)
清空所有:clear()
3、Map映射的遍历:
keys(): 拿到所有 map 成员的 key 值
values(): 拿到所有成员的 value 值
forEach((value,key,map)=>{})
entries(): 得到所有的 key 和 value 值
for(let [key,value] of map){}
4、Map对象与普通对象的转换:
普通对象转Map对象:
let obj = {
name: 'zhangsan',
age: 18,
[info]: '这个是对象的详细信息'
}
let res = new Map();
// 把普通对象转化 Map对象
for (let key in obj) {
res.set(key, obj[key])
}
console.log(res);
Map对象转普通对象:
let obj2 = new Map();
obj2.set('name', 'lisi')
obj2.set('age', 18)
obj2.set(info, '这个是对象的详细信息')
console.log(obj2);
// Map 对象转 普通对象
let res1 = {};
for (let [key, value] of obj2) {
res1[key] = value
}
console.log(res1);
console.log(typeof Object.keys(obj)[0]);
5、Map方法的优点:
可以使用对象作为 key(属性,键)
可以使用 for of 遍历对象