【ES6】set数据类型,map数据类型

1.set类似于数组,成员是唯一的

 const s = new Set();
    s.add(1).add(2).add(3).add(2);//Set(3) {1, 2, 3};支持链式写法

2.面试常见题(数组去重)

 var arr1 = [2,3,5,5,2,4,8,2];
 var arr2 =[...new Set(arr1)];//扩展运算符,进行序列化处理后,变成数组
  console.log(arr2)

3.map 类似于对象,以键值对方式出现;[key,value]

const m = new Map();
    m.set("name",'baby').set("age","18");
    //es6中新增for of特性
    for(let [key,value] of m){
        
    }

(map.size: map中的元素的数量)

补充:

Map 的方法

创建和增加

  • 构造函数传入数组创建
  • 使用 Set 对象创建 Map 对象
  • map.set(key, value) 新增一条键值对记录,然后返回该map对象

删除

  • map.delete(key) 如果存在该 key 删除后则返回 true,要是没有该元素则返回 false
  • map.clear() 移除Map对象的所有键/值对

查询和遍历

  • map.has(key) 如果存在该 key 则返回 true,否则则返回 false
  • map.get(key) 如果存在该 key 则返回 key 对应的 value,否则则返回 undefined
  • map.entries() 返回一个新的迭代器对象,按照插入顺序包含的元素形式是[key, value] 的数组
  • map.keys() 返回一个新的可迭代的对象,包含了按照插入顺序的 map 的 各个键
  • map.values() 返回一个新的可迭代的对象,包含了按照插入顺序的 map 的 各个值
  • map.forEach((value,key,map)=>{}) 其中 value 是当前元素的值,key 是当前元素的键名,map 是当前正在遍历的 map 对象
原文地址:https://www.cnblogs.com/tianping-ondo/p/14669335.html