我有一个工具可以通过文件系统对某些文件进行并发搜索。当工具搜索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。那么这个值至少意味着某事。
答案 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
,但在测试集合中是否存在该值时,我并不知道两者之间的性能比较。