javascript - 如何从不包含搜索关键字的字符串数组中删除字符串?

标签 javascript arrays

我有一个字符串数组(testArray)。我需要从数组中删除至少不包含一个 searchTerms 的字符串。testArray 应忽略 searchTerms 的大小写。

编辑:结果数组应包含字符串,即使搜索词是字符串中单词的一部分。

例如:“someright text” 应包含在结果中。

var testArray = [
    "I am",
    "I am wrong and I don't know",
    "I am right and I know",
    "I don't know",
    "some text",
    "I do know"
  ],
  searchTerms = ["I", "right","know"] //or ["i", "right","know"];

$.each(searchTerms, function(index, term) {
  var regX = new RegExp(term, "i");
  testArray = $.map(testArray, function(item) {
    if (regX.test(item)) {
      return item;
    } else {
      return;
    }
  });
});

console.log(testArray);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

结果应如下所示,

testArray = [
        "I am",
        "I am wrong and I don't know",
        "I am right and I know",
        "I don't know",           
        "I do know"
      ]

最佳答案

使用Array.filter , Array.someArray.includes

var testArray = ["I am", "I am wrong and I don't know", "I am right and I know", "I don't know", "some text", "I do know"],
searchTerms = ["I", "right","know"];

searchTerms = searchTerms.map(w => w.toLowerCase());

/* Use filter to filter only those records which have the search term in it. */
var result = testArray.filter((s) => s.split(" ").some((w) => searchTerms.includes(w.toLowerCase())));

console.log(result);

编辑

var testArray = ["I am", "I am wrong and I don't know", "I am right and I know", "I don't know", "some text", "I do know", "someright"],
searchTerms = ["I", "right","know"];

searchTerms = searchTerms.map(w => w.toLowerCase());

/* Use filter to filter only those records which have the search term in it. */
var result = testArray.filter((s) => searchTerms.some(w => s.toLowerCase().includes(w)));

console.log(result);

关于javascript - 如何从不包含搜索关键字的字符串数组中删除字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50698209/

相关文章:

javascript - 元素对 JQuery Click 没有反应

javascript - 如何在 Javascript 中实现自动注销

javascript - 对触发调用的表单的 jQuery 引用

php - Doctrine 实体对象到数组

javascript - 脚本中的目标类

javascript - 验证日期,以便该日期不能是 future 或过去的日期

ios - 如何将一个数组的tableview数据重新加载到另一个数组?

arrays - ReactJS 从数组渲染图像

c++ - 阵列已删除或损坏

python - 通过删除 "middlest"项从数组中删除条目的算法?