如何查找数组中的多个字符串项并删除与搜索匹配的字符串并返回数组的计数?

问题描述:

var stringsToSearch = ["cat", "dog", "rat"]; 
fromThisArray = ["rabbit", "snake", "cow", "cat", "dog"]; 

如果在fromThisArray中发现了stringToSearch,应该删除这些字符串并返回数组的计数。如何查找数组中的多个字符串项并删除与搜索匹配的字符串并返回数组的计数?

在这个论坛中提出了类似的问题,但他们发现单个字符串,但我的要求是搜索多个字符串并删除这些字符串。

+0

发表您尝试 –

+0

有很多相似类型的问题上左右。只需做一些研究工作 – Kenny

+0

请格式化您的代码,并添加更多描述的问题。 – thedeliciousmuffin

通过使用filterindexOf

var stringsToSearch = ["cat", "dog", "rat"]; 
 

 
var fromThisArray = ["rabbit", "snake", "cow", "cat", "dog"]; 
 

 
var filteredArray = fromThisArray.filter(function(item){ 
 
    return stringsToSearch.indexOf(item) < 0; 
 
}); 
 

 
console.log(filteredArray);

+0

谢谢你的工作。 – santhosh

+0

谢谢你们每个人在这方面的时间,所有的答案都接近我的要求。 – santhosh

+0

@skellysanthu很高兴,这对你有帮助。快乐的编码 –

var stringsToSearch = ["cat", "dog", "rat"]; 
var fromThisArray = ["rabbit", "snake", "cow", "cat", "dog"]; 

for(var i=0; i<stringsToSearch.length; i++){ 
    var idx = fromThisArray.indexOf(stringsToSearch[i]); 
    if(idx > -1){ 
     fromThisArray.splice(idx, 1); 
    } 
} 

console.log(fromThisArray, fromThisArray.length); 

function uniqueCount(arr, stringsToSearch){ 

    for(var i = 0; i < stringsToSearch.length ; i++){ 
    while(arr.indexOf(stringsToSearch[i])> -1){ 
     arr.splice(i,1);//remove 
    } 
    } 
    return arr.length; 
} 

var stringsToSearch = ["cat", "dog", "rat"]; 
var fromThisArray = ["rabbit", "snake", "cow", "cat", "dog"]; 

//call the function 
console.log(uniqueCount(fromThisArray , stringsToSearch));