0

我只是想了解javascript ES6 Maps(即let m = new Map())的查找时间为0(1)。我对 ES6 Maps 的理解是它的数据结构是基于元组数组的。您甚至可以在 Maps 的构造函数中使用元组数组。基本上,我的问题是:

怎么

let t = [[1,'hi'], [2,'bye']]

不同于

let m = new Map([[1,'hi'], [2,'bye']])

第一种情况显然会阻止持续查找。ES6 Map 如何实现常量查找?它们的底层数据结构是什么?

4

2 回答 2

1

一个合理的假设可能是使用 Hash-Map 数据结构进行 O(1) 查找。

也可能 Map 元组中的第一个元素可以使用键值对中的 Object 映射到数组的索引。因此,当调用特定键时,它可能会引用该对象。

于 2020-08-22T15:36:00.663 回答
-1

Map 类似于 Object ,并且 map 中的键存储在 Order 中,而 Object 则不是。它又是一个可迭代的数据结构,它不在 Object 中。所以它实现了不断的查找。

于 2020-08-22T15:34:34.990 回答