ES6之Map的用法

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值。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):