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 : 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/

相关文章:

javascript - 如何在 Backbone 中使用 setTimeout()?

javascript - 在 html/css 中触发 oncilck 事件时按钮的意外行为

javascript - 在 JSON 更改上运行 javascript?

javascript - 通过单击从数据库中删除特定条目

javascript - 如何使用 PHP 中的 ID 数组从 mysql 表中删除多行

JavaScript 日期在 HighCharts 上转换为 UTC

javascript - 开放层 3 : How to calculate distance between 2 points?

javascript - 对象作为 React Child 无效(找到 : object with keys{id, name})

javascript - 如何在react中使用同步调用

javascript - 如何刷新数据表排序和过滤信息