如何查找数组中的多个字符串项并删除与搜索匹配的字符串并返回数组的计数?
问题描述:
var stringsToSearch = ["cat", "dog", "rat"];
fromThisArray = ["rabbit", "snake", "cow", "cat", "dog"];
如果在fromThisArray中发现了stringToSearch
,应该删除这些字符串并返回数组的计数。如何查找数组中的多个字符串项并删除与搜索匹配的字符串并返回数组的计数?
在这个论坛中提出了类似的问题,但他们发现单个字符串,但我的要求是搜索多个字符串并删除这些字符串。
答
通过使用filter
和indexOf
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);
答
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));
发表您尝试 –
有很多相似类型的问题上左右。只需做一些研究工作 – Kenny
请格式化您的代码,并添加更多描述的问题。 – thedeliciousmuffin