ES6之Map的用法

作者: 李寻欢_ | 来源:发表于2019-12-10 12:11 被阅读0次

Map是一组键值对的结构,具有极快的查找速度。
举个栗子:
根据名字查找成绩(名字与成绩顺序一一对应),此时需要定义2个数组:

var names = [ 'Sam', 'Amy', 'Daming', 'Lingling' ];
var scores = [ 100, 98, 97, 100 ];

查找Daming的成绩,需要循环第一个数组,拿到Daming的索引index=3,接着拿着索引index=3去循环对比第二个数组,当index=3与第二个数组的索引相等时,取值,值即为Daming的成绩。

此时,只有4个学生的姓名与成绩,数组长度短,消耗的时长不明显,而若此时有10000个学生,两个数组的长度就为10000,这个时候再去循环对比取值,那么耗时就会长一些了。即:数组越长,耗时越长。

如果用Map实现,那么只需要一个“名字”-“成绩”对照表,然后直接根据名字查找成绩。举个栗子:

var m = new Map([['Sam', 100], ['Amy', 98], ['Daming', 97], ['Lingling', 100]]);
m.get('Daming');    // 97

初始化Map方法有两种:①初始化一个二维数组;②初始化一个空Map。

var m = new Map([[],[],[]]);  // 初始化一个二维数组
var n = new Map();  // 初始化一个空Map

Map具有以下方法:

var m = new Map();  // 初始化一个空Map
m.set('Sam', 100);    // 添加一个新的key-value
m.set('Amy', 98);
m.has('Sam');  // 是否存在key'Sam',存在返回true,不存在返回false
m.get('Sam');  // 100
m.delete('Sam');    // 删除key'Sam'
m.get('Sam')  // 删除后,再获取,返回undefined

由于一个key对应一个value,所以多次对同一个key赋值,会覆盖之前的value值。

相关文章

  • Set 和 Map 数据结构

    本文介绍 Set、WeakSet、Map、WeakMap 的基本用法 一、Set 1.1、基本用法 ES6 提供了...

  • ES6 数组方法

    ES6 以下是个人对ES6 数组方法的理解和学习 map() 用法 : filter() forOf遍历方法 ​ ...

  • ES6之Map的用法

    语法 new Map([iterable]) 参数:可以是数组或者其他的可迭代对象.null会被当作undefin...

  • ES6之Map的用法

    Map是一组键值对的结构,具有极快的查找速度。举个栗子:根据名字查找成绩(名字与成绩顺序一一对应),此时需要定义2...

  • js中Map基本用法

    js中Map之基本用法

  • Set 和 Map 数据结构

    Set WeakSet Map WeakMap Set § ⇧ 基本用法 § ⇧ ES6 提供了新的数据结构 Se...

  • ES6之Map用法大全

    语法 new Map([iterable]) 参数:可以是数组或者其他的可迭代对象.null会被当作undefin...

  • js中的set和map类型

    Set与map Es6中新增加了两个数据类型set和map类型,下面就看下这两个类型的特性和用法。 一、 Set ...

  • JS map函数的返回值

    map:map即是 “映射”的意思 用法与 forEach 相似,用法即: [].map(function(val...

  • 2018-08-23

    js数组map的用法指“映射”。[].map(); 基本用法跟forEach方法类似:[].map(functio...

网友评论

    本文标题:ES6之Map的用法

    本文链接:https://www.haomeiwen.com/subject/tdawgctx.html