我正在嘗試一個專案,該專案要求我記錄用戶訪問的每個唯一 URL,目標是有一種存盤每個陣列以保持它們唯一的方法。
有沒有一種有效的方法來做到這一點?顯然,這在理論上可能是巨大的,如果它是一個不會做的陣列,可能會有數萬個條目 - 我該如何存盤它們?
(我確實意識到這是含糊的,但即使您的回答是否定的,那也不可能或不聰明,這將是有用的:))
uj5u.com熱心網友回復:
......如果它是一個不會做的陣列,可能會有數萬個條目......
陣列可以包含數萬甚至數十萬個元素。
但是為了唯一性,您需要一個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 毫秒。而我在幾分鐘后放棄了使用陣列的等價物。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/434366.html
標籤:javascript 数组 贮存 无限的
下一篇:如何獲取二維陣列的索引?
