集合和字典,经常被念叨。说起数据结构你又会最先想起那一个?Set和Map的区别有哪些?Map是什么?又能怎么用?今天就走进Map,Let‘s go。
Map知多少?
觉得说起Map最形象易懂的说法,就是带特定方法的对象。因为对象的属性和值,就是字典Map的直观体现。当然取用的方法可能略有不同。而且map在前端中都来自Map对象,并且这个对象中提供了很多静态属性和方法。下面分别介绍下,从增删改查角度来说,分别为map.set(key, value)是增加新值的属性,map.delete(key)删除对应键值对,map.clear()是全部清空,改的话则是通过set完成,查则是map.get(key)。另外常用的还有map.has(key)判断是否有改键值信息、静态属性size获得当前map的容量。
Map用多少?
前端中map的最佳实践之一localStorage,它的本质就是Map的数据结构。随着业务的复杂,以及前端缓存数据,越来越多。localStorage应该也会越来越大。因此,在一堆数据中取出一条你要用的数据。是对性能有很大要求的。这时候,通过使用Map我们可以将时间复杂度,降低到O(1)。
Map有细节?
虽然Map是一个特殊对象。但是它的键是有序的。因此,当遍历的时候,一个Map对象会根据插入的顺序返回键值。单需要注意,虽然Map自身带有顺序,当并不总是这样,并且内部算法相当的复杂。总而言之,就是希望大家不到万不得已,千万别依赖存储顺序,如果要根据顺序的话,建议采用数组或者将顺序最为键存储。
Map怎么用?
const m = new Map();
const key = 'yaoshen';
m.set(key, 'value');
m.get(key); // 获得:'value'
m.has(key) // true
m.delete(key) // true
m.has(v) // false
结束语
Map数据结构是非常重要的,本文知识浅浅的交流一下。言而总之,就是希望大家能够重视,并且用起来。点赞+评论+关注,是对我最大的鼓励。谢谢大家阅读。
不要吹灭你的灵感和你的想象力; 不要成为你的模型的奴隶。 ——文森特・梵高