Javascript-在字符串数组中搜索单词的最快速度(也不是完全匹配)

Javascript-在字符串数组中搜索单词的最快速度(也不是完全匹配),javascript,arrays,performance,search,Javascript,Arrays,Performance,Search,我在一个搜索所有文件的网页上进行编码搜索,该网页由以下部分组成。 我遍历每个文件,并将所有单词保存到字符串数组中。 例如:var-array=[“这些”、“是”、“一些”、“随机”、“单词”、“开”、“a”、“网页”] 搜索引擎的工作方式如下:例如,用户类型“s”,如果数组中的任何单词包含此字母,则该单词将显示为结果。在这种情况下,结果将是:“这些”、“一些”、“单词” 问题是我有30个文件在其中搜索,每个文件平均有500个单词,所以搜索速度很慢 字母搜索(例如“s”)~4秒 字母搜索(如“se

我在一个搜索所有文件的网页上进行编码搜索,该网页由以下部分组成。 我遍历每个文件,并将所有单词保存到字符串数组中。 例如:
var-array=[“这些”、“是”、“一些”、“随机”、“单词”、“开”、“a”、“网页”]

搜索引擎的工作方式如下:例如,用户类型
“s”
,如果数组中的任何单词包含此字母,则该单词将显示为结果。在这种情况下,结果将是:
“这些”、“一些”、“单词”

问题是我有30个文件在其中搜索,每个文件平均有500个单词,所以搜索速度很慢

  • 字母搜索(例如“s”)~4秒
  • 字母搜索(如“se”)~2.1秒
  • 字母搜索(如“sea”)~1.9秒
  • 信件搜索(如“sear”)~1.7秒
  • 我用for循环遍历
    数组
    ,我认为这是最大的问题。那么,如果搜索到的单词在字符串数组中,并且比较不完全匹配,那么最快的方法是什么呢

    编辑:

    在网页上看起来像这样,例如:
    搜索词:“烧焦”
    结果:
    简介(页面名称;可点击的url链接)
    …您可以在此页面中搜索。。。(搜索词周围有单词的句子)

    代码说明:

    • 遍历文件
    • 删除html字符和其他特殊字符,并将单词从文件保存到字符串数组
    • 将文件中的单词与用户搜索的单词进行比较
    • 将带有搜索词的句子保存到
      句子
      变量
    • 句子
      保存到一个对象(该对象稍后在.html文件中迭代,句子显示在网页上)
    用户键入的要搜索的单词位于变量
    words

    这是我的密码

    
    var searchIndexPromise;
    var searchAppModule=angular.module(“searchApp”,[]);
    运行(函数($rootScope,$http){
    var globalSearch=$rootScope.globalSearch={
    查询:“”,
    结果:[],
    打开:函数(){
    window.location.href=“#!/51_00_搜索”;
    globalSearch.search(globalSearch.query);
    },
    搜索:函数(查找){
    如果(!searchIndexPromise)searchIndexPromise=$http.get(“searchIndex.json”)。那么(函数(响应){
    返回响应数据;
    });
    console.log(“搜索”,查找);
    searchIndexPromise.then(函数(searchIndex){
    var-temp=[];
    globalSearch.results=[];
    var words=查找.拆分(“”);
    如果(字数<1){
    返回;
    }
    for(搜索索引中的var键){
    for(searchIndex[key]中的var选项){
    for(var i=0;i)\n | \ | \ | \ | \ | \*| \-|[^\w\s!?].\n |+(?=)/ig,data=pagesLoad[页面名称].src.replace(regex,”);
    变量字符串=data.split(“”);
    string=string.filter(布尔值);
    让lowerString=string.map((项)=>{
    return item.toLowerCase();
    });
    //这部分正在减慢搜索速度
    对于(变量i=0;i