我如何在 Javascript 中存储大量唯一条目?

问题描述 投票:0回答:1

我正在尝试一个项目,要求我记录用户访问的每个唯一的 URL,目标是有一种方法来存储每个数组以保持它们的唯一性。

有没有有效的方法来做到这一点?显然,这在理论上可能是巨大的,如果它是一个数组,则可能有数万个条目,这是不行的 - 我该如何存储它们?

(我确实意识到这是模糊的,但即使你的答案是否定的,这也不可能或聪明,会有用:))

javascript arrays storage infinite
1个回答
0
投票

...如果它是一个数组,可能有数万个条目,这是不行的...

数组可以包含数万甚至数十万个元素。

但为了唯一性,您需要

Set
而不是数组,因为与数组上的线性查找时间相比,它提供了亚线性查找时间,并且为唯一值集提供了更好的语义..

这是构建一组一百万个唯一的随机数的示例:

const set = new Set();
console.time("Time to build the set");
while (set.size < 1_000_000) {
    set.add(Math.random()); // Won't add duplicate elements
}
console.timeEnd("Time to build the set");
console.log(`The set contains ${set.size.toLocaleString()} unique otherwise-random numbers`);

对我来说,运行时间约为 200 毫秒。而我在几分钟后就放弃了使用数组的等效方法。

© www.soinside.com 2019 - 2024. All rights reserved.