博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript 6中的Set和Map数据结构
阅读量:5890 次
发布时间:2019-06-19

本文共 1754 字,大约阅读时间需要 5 分钟。

一.Set

  基本用法:

    Set本身是一个构造函数,用来生成Set数据结构。Set函数可以接受一个数组作为参数用来初始化。 

const arr = new Set([2,2,3,3,4,4,5,8]);console.log(arr);

  set的属性和方法

  属性:

   Set.prototype.constructor:构造函数,默认就是Set函数。

     Set.prototype.size:返回Set实例的成员总数。

let set  = new Set([1,1,2,2,3,4])set.size       //4

 方法:

  1.add(value):添加某个值,返回 Set 结构本身。 

let set = new Set();set.add(1);    //Set(1){1}

  2.delete:删除某个值,返回一个布尔值,表示删除是否成功。

let set  = new Set();set.add(1).add(2);     //Set(2){1,2}set.delete(2);            //    trueconsole.log(set);        //Set(1){1}

  3.has(value):返回一个布尔值,表示该值是否为Set的成员。

let set  = new Set();set.add(1).add(2);     //Set(2){1,2}set.has(2);            //    false

  4.clear():清除所有成员,没有返回值。

let set  = new Set();set.add(1).add(2);     //Set(2){1,2}set.clear(); console.log(set);       //Set(0){}  

可以通过Array.from方法将Set结构转为数组

let set = new Set();set.add(1).add(2);let setArray = Array.from(set);console.log(setArray );          //[1,2]

  然而,我们可以通过Set()和Array.from对数组进行去重 

function deleUp(arr){    return Array.from(new Set(arr))}let set = [1,1,2,2,3,3];deleUp(set);     //[1,2,3]

二.Map

   基本用法:Map类似对象,也是键值对的集合。Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。和Set()一样,Map也可以接受一个数组作为参数进行初始化。

  实例的属性和方法

  size:返回Map结构的成员总数。

const map = new Map();map.set('a',true);map.set('b',false);map.size;

  set(key,value):key可以是字符串、数组、undefined

const map = new Map();map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}

  get(key):返回key的值,如果没有相应的key,则返回undefined

const map = new Map();map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}map.get('name');    //zhangsan

  has(key)、delete(key)、clear()方法和Set实例中相关方法一样。

三、其它

  关于Set和Map这里只做简单介绍,详细内容请查阅《ECMAScript 6》中的Set和Map数据结构。

 

 

转载于:https://www.cnblogs.com/xufeikko/p/9872521.html

你可能感兴趣的文章
mysql中的事务和锁_MySQL - 事务和锁中的互斥?
查看>>
mysql statement讲解_Statement接口详解
查看>>
mysql_print_default_知识点:MySQL常用工具介绍(十 二)——实用程序my_print_defaults、perror...
查看>>
mysql怎么会报错_MySQL启动报错怎么办?
查看>>
python编译exe用于别的电脑上_Python安装教程(推荐一款不错的Python编辑器)
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
hive中如何把13位转化为时间_sqoop1 导入 hive parquet 表中 时间戳调整为日期
查看>>
mysql书外键_[转] mysql 外键(Foreign Key)的详解和实例
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
python入门小游戏代码_【Python】Python代码实现“FlappyBird”小游戏
查看>>
云服务器怎么卸载mysql数据库_mysql 删除数据库脚本
查看>>
mysql 5.5.57互为主从_MYSQL 5.5.18 互为主从配置成功
查看>>
mysql5002_mysql新手进阶02
查看>>
python类 del_全面了解Python类的内置方法
查看>>
前后端传图片用base64好吗_前后端分离 前台传base64的图片 tp5.1.1进行处理
查看>>
java对象的排序_Java对象排序两种方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
java 面向对象基本概念_Java面向对象-面向对象编程之基本概念
查看>>
Ubuntu 12.04安装
查看>>