簡體   English   中英

使用Node.js記憶遍歷的fs路徑

[英]Memoizing traversed fs paths with Node.js

我有一個工具正在通過文件系統並發搜索某些文件。 在工具搜索fs時,它可能會發現它需要在搜索中最初未包含的目錄中進行搜索。

我應該做的是記住每個已經開始搜索的目錄。

除了將它們存儲在這樣的哈希中之外,我想不出一種更好的方式來記住文件路徑:

interface IMemoizationMap {
  [key: string]: boolean
}

因此可能看起來像:

const hash = {
  '/Users/you/projects/x': true,
  '/Users/you/projects/x/lib': true,
  '/Users/you/projects/x/lib': true,
  ...
  ...
  '/Users/you/some-stuff/z': true
};

然后,我進行快速查找以查看是否需要搜索某個目錄。 對於此解決方案感到尷尬的是,哈希中的值幾乎可以是任何值-true,false和undefined。

這是記住遍歷的文件路徑的最佳方法嗎?

順便說一句,是

key in hash

與...相同

hash[key]

如果真是這樣,那么將有價值的數據存儲為值:

當開始搜索目錄時,我可以將值設置為false,然后當目錄完成搜索時,可以將值設置為true。 那么價值至少意味着什么

搭配Map

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map

Map對象包含鍵值對。 任何值(對象值和原始值)都可以用作鍵或值。

Set

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Set

Set對象使您可以存儲任何類型的唯一值,無論是原始值還是對象引用。

我會選擇Set ,但是當測試值是否已經存在於集合中時,我不知道兩者之間的性能比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM