ES6之Map的用法
来源:     阅读:564
云上智慧
发布于 2020-04-24 14:05
查看主页

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();  // 初始化一个空Mapm.set('Sam', 100);    // 增加一个新的key-valuem.set('Amy', 98);m.has('Sam');  // 能否存在key'Sam',存在返回true,不存在返回falsem.get('Sam');  // 100m.delete('Sam');    // 删除key'Sam'm.get('Sam')  // 删除后,再获取,返回undefined

因为一个key对应一个value,所以屡次对同一个key赋值,会覆盖之前的value值。

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
Error in render: "ReferenceError: h is not defined"
【技术转型】我Android转前台的思考过程(转自大佬微信)
深入学习MySQL——视图
作为一个优秀的程序员,真的需要精通C语言吗?
春节回家抢票难?“Python抢票教程”还不快码住!
首页
搜索
订单
购物车
我的