从与JavaScript中的字符串匹配的数组中删除多个项
我有两个数组,我想从从与JavaScript中的字符串匹配的数组中删除多个项,javascript,Javascript,我有两个数组,我想从arr中删除removeStr中的项目: var arr = [ '8','abc','b','c']; // This array contains strings that needs to be removed from main array var removeStr = [ 'abc' , '8']; arr = arr.filter(function(val){ return (removeStr.indexOf(val) == -1 ? true : f
arr
中删除removeStr
中的项目:
var arr = [ '8','abc','b','c'];
// This array contains strings that needs to be removed from main array
var removeStr = [ 'abc' , '8'];
arr = arr.filter(function(val){
return (removeStr.indexOf(val) == -1 ? true : false)
})
console.log(arr);
// 'arr' Outputs to :
[ 'b', 'c' ]
但如果我有下面的数组呢:
var arr = [ 'abc / **efg**','hij / klm','**nop** / qrs','**efg** / okl'];
var removeStr = [ 'efg' , 'nop'];
如何根据匹配的字符串筛选元素?结果应返回:
['hij/klm']
在这种情况下,我认为您需要遍历removeStr
数组,并检查每个arr
元素是否包含removeStr
数组中的字符串
// var arr = ['8', 'abc', 'b', 'c'];
// // This array contains strings that needs to be removed from main array
// var removeStr = ['abc', '8'];
var arr = ['abc / **efg**', 'hij / klm', '**nop** / qrs', '**efg** / okl'];
var removeStr = ['efg', 'nop'];
arr = arr.filter(function (val) {
var found = false;
for (var i = 0; i < removeStr.length; i++) {
var str = removeStr[i];
if (val.indexOf(str) > -1) {
return false;
}
}
return true;
});
console.log(arr);
// 'arr' Outputs to :
['b', 'c']
//var arr=['8','abc','b','c'];
////此数组包含需要从主数组中删除的字符串
//var-removeStr=['abc','8'];
var arr=['abc/**efg**'、'hij/klm'、'**nop**/qrs'、'**efg**/okl'];
var-removeStr=['efg','nop'];
arr=arr.filter(函数(val){
var=false;
对于(变量i=0;i-1){
返回false;
}
}
返回true;
});
控制台日志(arr);
//“arr”输出至:
['b','c']