Javascript 如何将字符串与字符串数组匹配

Javascript 如何将字符串与字符串数组匹配,javascript,arrays,Javascript,Arrays,我有一个包含字符串的数组 commentArray={words:[xyz,abc,random,sample]} 我要匹配字符串 var comment = "hello world ran" 我现在做的是 commentArray.words.find(words => { if (comment.toLowerCase().includes(words.toLowerCase())) { return true; } }); 它给出true,因为

我有一个包含字符串的数组

commentArray={words:[xyz,abc,random,sample]}

我要匹配字符串

 var comment = "hello world ran"
我现在做的是

commentArray.words.find(words => {
    if (comment.toLowerCase().includes(words.toLowerCase())) {
      return true;
    }
  });

它给出true,因为random包含ran,但我只希望在匹配整个字符串而不是字符时为true。

1将字符串注释拆分为单词数组


2对于评论中的每个单词,尝试在单词数组中查找。当然,您可以使用类似于比较的内容,但您需要使用===而不是include进行比较。

1将字符串注释拆分为单词数组

2对于评论中的每个单词,尝试在单词数组中查找。您可以使用类似于比较的内容,但您当然需要使用===而不是include进行比较。

var commentArray={words:[xyz,abc,random,sample]} var comment=hello world random; var commentInWords=comment.split; var res=commentArray.words.filterwords=>{ 设a=\包括常用词,words.toLowerCase 如果{ 返回true; }否则{ 返回false; } }; 控制台。logres var commentArray={words:[xyz,abc,random,sample]} var comment=hello world random; var commentInWords=comment.split; var res=commentArray.words.filterwords=>{ 设a=\包括常用词,words.toLowerCase 如果{ 返回true; }否则{ 返回false; } }; 控制台。logres 您可以这样做:

const commentArray = {
    "words": [ "xyz", "abc", "random", "sample" ] 
};

const comment = "hello world ran";
const commentArr = comment.split(' ');

commentArray.words.find(words => {
    if (commentArr.includes(words.toLowerCase())) {
        return true;
    }
});
您可以这样做:

const commentArray = {
    "words": [ "xyz", "abc", "random", "sample" ] 
};

const comment = "hello world ran";
const commentArr = comment.split(' ');

commentArray.words.find(words => {
    if (commentArr.includes(words.toLowerCase())) {
        return true;
    }
});

commentArray.words.some word=>~comment.split.indexoford

commentArray.words.some word=>~comment.split.indexoford

使用===代替.includes?使用===代替.includes?@chetankumar您也试过吗,如Pac0所述?:您可以使用类似于比较的东西,但是您当然需要使用===而不是include进行比较。这一定行得通,因为严格相等将永远不会在ran和ran之间返回true,反之亦然。@chetankumar您也尝试过这个,如Pac0所述吗?:您可以使用类似于比较的东西,但是您当然需要使用===而不是include进行比较。这一定行得通,因为严格相等将永远不会返回真值,而ran与RAND相反,反之亦然defined@chetankumar,includes是一个lodash函数。为此,您需要导入cdn。你可以从这个链接上得到,我得到的不是defined@chetankumar,includes是一个lodash函数。为此,您需要导入cdn。你可以从这个链接得到它
var commentArray ={ "words":[ "xyz", "abc", "random", "sample" ] };
var comment = "hello xyz";
var commentInWords = comment.split(" ");
 var res = commentArray.words.filter(words => {
   for(var i = 0; i <= commentInWords.length; i++){
    var a = (commentInWords[i] == words.toLowerCase());
        if (a) {
          return true;
        }
   }
 });

 console.log(res)