使用Node.js记忆遍历的fs路径

时间:2017-06-25 20:20:06

标签: node.js hash hashmap hashtable memoization

我有一个工具可以通过文件系统对某些文件进行并发搜索。当工具搜索fs时,它可能会发现它需要搜索最初未包含在搜索中的目录。

我应该做的是记住每个已经开始搜索的目录。

我想不出更好的方法来记住文件路径,除了将它们存储在这样的哈希中:

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
};

所以看起来像:

key in hash

然后我快速查找是否需要搜索某个目录。对这个解决方案感到尴尬的是,哈希中的值几乎可以是任何东西 - 真,假,未定义。

这是记忆遍历文件路径的最佳方法吗?

顺便说一下,是

的表现
hash[key]

相同
stringified.replace('"prefix" : prefix, "prefix" : newprefix')

如果是这种情况,那么将数据存储为值的一些值得:

当一个目录开始被搜索时,我可以将值设为false,然后当目录完成搜索时,我可以将值翻转为true。那么这个值至少意味着某事

1 个答案:

答案 0 :(得分:2)

使用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,但在测试集合中是否存在该值时,我并不知道两者之间的性能比较。