ES6语法—Set && Map

一、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():得到所有的 keyvalue
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 遍历对象


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 848130454@qq.com

文章标题:ES6语法—Set && Map

文章字数:552

本文作者:Spicy boy

发布时间:2019-07-05, 18:00:48

最后更新:2021-03-30, 16:15:32

原始链接:http://www.spicyboy.cn/2019/07/05/ES6%E8%AF%AD%E6%B3%95%E2%80%94Set%20&&%20Map/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏