一、map,简单的键值对映射,具有很快的查找速度

1. 初始化map,map的键名可以使用其他数据类型,对象的属性名只能使用字符串或symbol

使用二维数组

var m = new Map([['name', 'LQW'], ['age', 23], [123, '我的键名是数字类型']]);
m.get('name'); // LQW

初始化一个空Map

var m = new Map();
m.set('name', 'LQW');
m.set('age', 23);
m.set(123, '我的键名是数字类型');
m.get(123); // 我的键名是数字类型

备注:由于一个key只能对应一个value,所以重复赋值后面的会覆盖前面的。

如果Map的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map将其视为一个键,包括0和-0。另外,虽然NaN不严格相等于自身,但Map将其视为同一个键。

2.map的方法

var m = new Map();

设置键值 m.set(key,value);

获取键值 m.get(key);

删除键值 m.delete(key);

移除所有的键值 m.clear();

获取键的个数 m.size;

判断键值是否存在 m.has(key);

获取所有的键名(Iterator对象:可以使用for..of进行迭代的对象)m.keys();

获取所有的键值(Iterator对象:可以使用for..of进行迭代的对象)m.values();

二、set,与map类似,也是一组key的集合,但是没有value,类似于数组,并且不能存储重复的key

1.初始化set

var s = new Set();
s.add(4);
var s = new Set([1, 2, 3]); 

2. set方法

添加key  s.add(key);

删除key  s.delete(key);

判断键值是否存在 s.has(key);

移除所有的键值 s.clear();

ES6新数据类型map与set的更多相关文章

  1. ES6新数据类型Symbol

    Symbol 需计算字面量属性时使用 const benz = Symbol('benz'); const car = { [benz]: 'benz car' }; const info = Sym ...

  2. ES6新增的数据类型Map和Set。

    Javascript的默认对象表示方式 {} ,即一组键值对. 但是Javascript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问 ...

  3. 前端入门21-JavaScript的ES6新特性

    声明 本篇内容全部摘自阮一峰的:ECMAScript 6 入门 阮一峰的这本书,我个人觉得写得挺好的,不管是描述方面,还是例子,都讲得挺通俗易懂,每个新特性基本都还会跟 ES5 旧标准做比较,说明为什 ...

  4. ES6新语法

    ES6新语法概览 简介 ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015:该标准由ECMA(欧洲计算机制造联合会)的第39号技术专家委 ...

  5. 34.js----JS 开发者必须知道的十个 ES6 新特性

    JS 开发者必须知道的十个 ES6 新特性 这是为忙碌的开发者准备的ES6中最棒的十个特性(无特定顺序): 默认参数 模版表达式 多行字符串 拆包表达式 改进的对象表达式 箭头函数 =&> ...

  6. ES6中的Map集合(与java里类似)

    Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...

  7. ES6新特性概览

    本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...

  8. Atitit js版本es5 es6新特性

    Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...

  9. ES6新特性简介

    ES6新特性简介 环境安装 npm install -g babel npm install -g babel-node //提供基于node的REPL环境 //创建 .babelrc 文件 {&qu ...

随机推荐

  1. 机智云连接ESP8266--远程控制点亮RGB灯

    概述 智能灯,是一个简单常见的智能产品,硬件电路简单,程序本身也不复杂:下面我们使用esp8266开发板和机智云云端,实现如何将一个传统的灯泡,改造成可以远程控制开关的智能灯. 1.准备工作 硬件: ...

  2. Mybatis中分页存在的坑1

    站在巨人的肩膀上 https://www.cnblogs.com/esileme/p/7565184.html 环境:Spring 4.2.1 Mybatis 3.2.8 pagehelper 5.1 ...

  3. ebullient(2018.10.25)

    结论巨好想,每一次操作可以看作把一个b往前移一位,另一个b往后移一位,逆序对个数不改变,判断即可做第一问. 此处代码仅给出第一问做法: #include<cstdio> #include& ...

  4. 后端开发福音!GitHub上15W+的后台控制面板!

    Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费的控制面板呢?我在 Github 上收集 ...

  5. 线程安全 原子性 可见性 顺序性 volatile

  6. cmd,bat和dos的区别

    区别 dos是磁盘操作系统(Disk Operating System),是个人计算机上的一类操作系统. bat是DOS命令,在任何dos环境下都可以使用. bat文件是dos下的批处理文件,批处理文 ...

  7. Bootstrap里的文件作用

    Bootstrap里的文件分别表示什么?都有什么用? bootstrap.css bootstrap.min.css bootstrap-responsive.css bootstrap-respon ...

  8. JMeter BeanShell示例

    翻译:https://blog.trigent.com/jmeter-blog-series-jmeter-beanshell-example 在这个例子中,我们将演示在Apache JMeter中使 ...

  9. python 基础(三) 程序基本流程

    流程控制 流程结构分为3种 顺序结构 分支结构 循环结构 一  分支结构 (1) 单一条件分支 主体结构: if 条件表达式:   #为真得代码块   (2) 双向条件分支 主体结构: if 条件表达 ...

  10. web基础笔记

    浏览器渲染页面的过程 浏览器渲染页面前需要先构建 DOM 和 CSSOM 树.因此,我们需要确保尽快将 HTML 和 CSS 都提供给浏览器. 参考:https://developers.google ...