搜索文件中的字符串数组



我有一个文本文件,比如testFile.txt和一个要在文件中搜索的字符串数组,比如['year', 'weather', 'USD 34235.00', 'sportsman', 'ಕನ್ನಡ']。我可以用NodeJS natural将文件分解为令牌,也许可以从中创建一个大型数组(约为字符串数组中条目数的100-200倍(。然后,对两个数组进行排序并开始搜索。或者,直接使用lodash

Found结果是当在文本文件中找到来自搜索字符串阵列的至少一个字符串时;否则应将其视为NotFound

实现这种搜索的一些选项是什么?

我可以建议对大型标记数组使用Set,然后遍历搜索项数组,检查标记是否将has设置为其中一个项。如果术语数组也很大,可以考虑使用Set(集合的MDN文档(

您可以从以下注释中看到数组和集合在大量元素的上下文中的性能比较

下面是的演示片段

const tokens1 = ['ಕನ್ನಡ', 'asdasd', 'zxczxc', 'sadasd', 'wqeqweqwe', 'xzczxc']
const tokens2 = ['xzczcxz', 'asdqwdaxcxzc', 'asdxzcxzc', 'wqeqwe', 'zxczcxzxcasd']
const terms = ['year', 'weather', 'USD 34235.00', 'sportsman', 'ಕನ್ನಡ']
const set1 = new Set(tokens1)
const set2 = new Set(tokens2)
const find = (tokensSet, termsArray) => {
for (const term of termsArray) {
if (tokensSet.has(term)) {
return 'Found'
}
}
return 'Not Found'
}
console.log(find(set1, terms))
console.log(find(set2, terms))

相关内容

  • 没有找到相关文章

最新更新