检查一千万个字符串数组中的字符串的有效方式是什么?

时间:2020-10-06 18:41:16

标签: javascript performance

要检查是否存在的

字符串是浏览器内部一千万个const类型的唯一域名的列表中的域名(google.com)。我可以将一千万个字符串连接成1个字符串,所以这是检查子字符串的问题,或者可以使用数组索引of来检查索引。

这类似于https://stackoverflow.com/a/1473742/2752107和其他相关问题,但没有解决问题的规模。

2 个答案:

答案 0 :(得分:1)

这取决于多个因素。

该数组是否以任何方式排序?如果是这样,也许最好的选择就是二进制搜索。

是否要在未排序的数组中查找特定的字符串,并在找到后退出循环?您最好使用Array.prototype.find()或创建一个for循环并在找到字符串后立即中断。

是否需要检查数组中的每个字符串?一个简单的for循环就可以解决问题。

答案 1 :(得分:0)

要么我可以将一千万个字符串连接成1个字符串,所以这是检查子字符串的问题,或者可以使用数组索引of来检查索引。

检查子字符串比使用索引检查子字符串慢。

根据Rezaa91's answer的建议,如果可以对数组进行排序,则可以执行binary search,它比线性搜索要快

但是,如果您确实希望线性搜索,请使用Web Worker,以便在搜索过程中您的网站/应用程序保持可用和响应。