从与JavaScript中的字符串匹配的数组中删除多个项目

时间:2018-04-18 16:47:25

标签: javascript

我有两个数组,我想从mydata$IsHoliday=as.factor(mydata$IsHoliday) 中移除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'];

1 个答案:

答案 0 :(得分:1)

在这种情况下,我认为您需要遍历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']