我有两个数组,我想从 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']
关于javascript - 从与 JavaScript 中的字符串匹配的数组中删除多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49904988/