如何在字符串中多次出现单词。我尝试了多种功能但没有成功。我知道我可以使用some()方法获得第一个真值,如下所示。
var keyword_array = ["Trap","Samples","WAV","MIDI","Loops"];
function validateContentKeywords(content,keyword){
keyword.some(function(currentValue,index){
console.log(currentValue + " ");
return content.indexOf(currentValue) >= 0;
});
}
// Outputs --> Trap Samples
if(validateContentKeywords("Beat Loops WAV Trap Samples Dog Cat MIDI",keyword_array)){
console.log("Matches");
}
// What I Want is --> Trap,Samples,MIDI,Loops
上述函数仅输出2次出现,我希望它同时输出所有匹配值,例如 - >陷阱,样品,MIDI,循环。 有没有办法同时在字符串中多次出现单词?
更新::帮助我的解决方案在
之下 function Matches(value){
return "Beat Loops WAV Trap Samples Dog Cat MIDI".indexOf(value) !== -1;
}
var keyword_array = ["Trap","Samples","WAV","MIDI","Loops"].filter(Matches);
document.write(keyword_array);
答案 0 :(得分:2)
您似乎正在寻找返回匹配元素数组的filter
Array method,而不是某些匹配的布尔值。
答案 1 :(得分:2)
var keyword_array = ["Trap", "Samples", "WAV", "MIDI", "Loops"];
function validateContentKeywords(content, keyword) {
var words = content.split(' '); //split the given string
for (var i = 0; i < words.length; i++) {
if (keyword.indexOf(words[i]) > -1) { //check if actually iterated word from string is in the provided keyword array
document.write(words[i] + " "); //if it is, write it to the document
};
}
}
validateContentKeywords("Beat Loops WAV Trap Samples Dog Cat MIDI", keyword_array);
答案 2 :(得分:0)
最简单的方法是:
keyword_array.filter(keyword => searchString.includes(keyword));
您可以详细了解filter
here。我强烈建议您了解如何使用map
,reduce
和filter
。他们是你最好的朋友。