Javascript在字符串中搜索列表

时间:2018-01-20 06:35:57

标签: javascript

我想知道一个字符串是否包含数组的任何成员。如果它包含,

返回该成员。

    var cat_list = ["apple", "james", "hello", "drink"];
    var title = "James always drinks water"

在这种情况下,应该同时返回“James”和“drink”

5 个答案:

答案 0 :(得分:1)

您可以遍历数组并使用indexOf进行检查。

var foundWords = [];
for(var i=0; i<cat_list.length; i++){
    var currentWord = cat_list[i];
    if(title.indexOf(currentWord)>-1){
        foundWords.push(currentWord);
    }
}

执行上述for语句后,数组foundWords将包含标题中的founds字样。

解决上述问题的另一种方法是使用如下Array.prototype.reduce()方法:

var foundWords = catList.reduce(function(foundWords, currentWord){
    if(title.indexOf(currentWord)>-1){
        foundWords.push(currentWord)
    }
    return foundWords;
},[]);

答案 1 :(得分:1)

您可以在cat_list中设置循环并获得结果。

var cat_list = ["apple", "james", "hello", "drink"];
var title = "James always drinks water"

var res = cat_list.filter((item)=>{
    return title.indexOf(item) !== -1;
});

console.log(res);

答案 2 :(得分:0)

var cat_list = ["apple", "james", "hello", "drink"];
var title = "James always drinks water";
var member = [];
cat_list.map((value)=>{
	title.includes(value) && member.push(value);
});
console.log(member);

答案 3 :(得分:0)

第一个问题

使用Array [index]

 z= cat_list[1]+cat_list[3];
 alert(z);

第二个问题

使用substring()方法从两个指定索引之间的字符串中提取字符,并返回新的子字符串。

 v= title.substring(0,5)+title.substring(13,18);
 alert(v);

答案 4 :(得分:0)

您可以在单词部分中拆分给定的字符串,然后检查小写单词是否包含目录中的单词。

&#13;
&#13;
filter
&#13;
&#13;
&#13;