首页 > 解决方案 > 如何在客户端使用 Javascript 在脚本数组中查找关键字

问题描述

我正面临这个问题,我不知道解决它的正确方法。我有一组关键字,例如:

keywordArray = ["Javascript", "Python", "R", "Data Science", "Front-end", "Amazon Web Services", "Amazon DynamoDB"]

现在我需要在一个字符串数组中只找到一次出现并返回该出现。例如:

stringArray = ["I love learning JavaScript but I would also like to learn Data Science using R", "I don't buy at Amazon", "RnB Music"]

在这个例子中,我需要返回一个包含Javascript,Data Science和的数组R。如果我从 stringArray 中删除第一个字符串,那么它不应该返回R(我认为它可能在“RnB Music”中找到)。

我想在客户端执行此操作,但我尝试了indexOf(),contains()等,但它无法正常工作。

那么,我可以在客户端做吗?如果答案是肯定的,那么我该怎么做?如果没有,那么是否可以在 NodeJS 上做到这一点?我应该为此使用云服务吗?

我目前正在使用 Angular、Express、NodeJS 和 MongoDB Atlas,它具有全文搜索服务并且效果很好。我可能会尝试在那里做,但我不知道它是否具有成本效益。

标签: javascriptnode.jsangularmongodb-atlaskeyword-search

解决方案


好的,你有第一个数组:

const keywordArray = ["JavaScript", "Python", " R", "Data Science", "Front-end", "Amazon Web Services", "Amazon DynamoDB"]; 

第二个是字符串列表

const stringArray = ["I love learning JavaScript but I would also like to learn Data Science using R", "I don't buy at Amazon", "RnB Music"];

因此,您需要遍历两个数组并检查includes()方法。

像这样 :

const keywordArray = ["JavaScript", "Python", " R", "Data Science", "Front-end", "Amazon Web Services", "Amazon DynamoDB"];
    
    const stringArray = ["I love learning JavaScript but I would also like to learn Data Science using R", "I don't buy at Amazon", "RnB Music"];
    
    const result_array = [];
    
    for (let i = 0; i < stringArray.length; i++)
    {
      for (let d = 0; d < keywordArray.length; d++)
      {
          if (stringArray[i].includes(keywordArray[d]))
          {
            result_array.push(keywordArray[d]);
          }
              
      }
    }
    
    console.log(result_array);

推荐阅读