js 数据结构map

JavaScript011

js 数据结构map,第1张

1.JavaScript 的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

2.类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

3.如果对同一个键多次赋值,后面的值将覆盖前面的值。

4.只有对同一个对象的引用,Map 结构才将其视为同一个键。Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题。

5.如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键.

数组: 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储。知道第一个元素的内存地址,加上下标(偏移量)就能找到第2或N个。

数组随机访问的速度快,增加和删除则慢(因为删除index2,后面的3-n都要往前挪一位)

链表: 非连续存储的指向型存储,随机访问的速度慢(需一层层查找),增加和删除则快(不需要挪位)

树形结构、图形结构

树形结构又指向其他树点,就是图形结构

图结构,在webpack和vite中有用到,作用是,能找出是否有文件被重复加载

堆和栈

对象是数组+链表的结构

只要是树形结构,解答基本都可以用递归解决