ES6中的SetMap数据结构

Posted 彭蒙善

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6中的SetMap数据结构相关的知识,希望对你有一定的参考价值。

   MapSet都是ES6新的数据结构,他们都是新的内置构造函数。也就是说typeof的结果,多了两个。

他们是什么:

   Set是不能重复的数组。

   Map是可以任何东西当做键的对象;

 

  ES6 提供了新的数据结构 Set它类似于数组,但是Set成员的值都是唯一的,没有重复的值

   let m = new Set();

            m.add(1);

            m.add(2);

            m.add(3);

            m.add(3);

            m.add(3);

            m.add(4);

            m.add(5);

         console.log(m);

 

 

 集合中添加数据用add()方法,会自动过滤已经有的元素。

  let m = new Set([1,1,1,1,2,2,2,2,3,3,3]);

    console.log(m);

 

   

 最快的数组去重的方法

  let m = new Set([1,1,1,1,2,2,2,2,3,3,3]);

    console.log(m);

 

   

  let m = new Set([1,2,3,4,5]);

   console.log(m.size);

   console.log(m.has(4));

   console.log(m.delete(4));

   console.log(m);

 

 

    集合的关注点是元素在里面,而不关注顺序,所以不提供枚举某项的API。但是可以转为数组[...m]

    ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map Object 更合适。

 let m = new Map();

   const o = {"a" : 1 , "b" : 2};

   m.set(o , 123);

   m.set(2 , 456);

   console.log(m);

 

 

 使用get来得到元素,key是区分类型的。

 console.log(m.get(o));

 

    本人的小小理解~~~

以上是关于ES6中的SetMap数据结构的主要内容,如果未能解决你的问题,请参考以下文章

ES6笔记-- SetMap结构和Iterator迭代器

ES6setmap数据结构

三阶段课程——Day02(ES6简介let和const)(数据类型和数据结构:字符串扩展Symbol数组新增方法对象新增SetMap数组解构对象解构...运算符)

ES6——SetMap

ES6入门概览二--数组

记录--10个超级实用的SetMap使用技巧