当前位置: 首页 > 知识库问答 >
问题:

使用筛选字符串筛选字符串数组并从原始数组中删除

郦昆
2023-03-14

我想从包含单词Evil(filterString)的数组中删除一些元素

let guests = ["Partner", "Evil Nice Relative 1", "Nice Relative 2", "Evil One", "another evil", "another one", "another evil is here", "strange Evil is here", "someone Nicer", "Ugly Evil Bad"];

const filteredArray = [];
const filterString = "Evil";

function checkEvil() {
    guests.filter((element, index) => {
        if (element.toLowerCase().indexOf(filterString.toLowerCase()) !== -1) {
            console.log(index);
            guests.splice(index,1);
        } else {
            filteredArray.push(element);
        }
    });
    console.log(guests);
}

以下是我从原始阵列(来宾)获得的信息:


    ['Partner', 'Nice Relative 2', 'another evil', 'another one', 'strange Evil is here', 'someone Nicer']

只希望客人数组更新一旦所需的字符串(邪恶)被过滤。

共有3个答案

诸葛奇玮
2023-03-14
<script>
    var list = ['Partner', 'Nice Relative 2', 'another evil', 'another one', 'strange Evil is here', 'someone Nicer'];
    var new_list = [];

    for(var i=0; i<list.length; i++) {
        if(!list[i].toLowerCase().includes('evil')) {
            new_list.push(list[i]);
        }
    }

    console.log(new_list);
</script>
程旭尧
2023-03-14

定义一个模式,然后根据它进行过滤

var arr = ['Partner', 'Nice Relative 2', 'another evil', 'another one', 'strange Evil is here', 'someone Nicer'];
const PATTERN = 'EVIL';
arr = arr.filter(str => str.toUpperCase().indexOf(PATTERN) === -1);
贾实
2023-03-14

由于您希望对原始数组进行变异,因此可以执行以下操作:

let guests = [
  "Partner",
  "Evil Nice Relative 1",
  "Nice Relative 2",
  "Evil One",
  "another evil",
  "another one",
  "another evil is here",
  "strange Evil is here",
  "someone Nicer",
  "Ugly Evil Bad",
];

const filterString = "Evil";

function checkEvil() {
  for (let i = guests.length - 1; i >= 0; i--) {
    const element = guests[i];
    if (element.toLowerCase().indexOf(filterString.toLowerCase()) !== -1) {
      guests.splice(i, 1);
    }
  }
  console.log(guests);
}

checkEvil();
 类似资料:
  • 我有一个返回字符串[][]的方法,如下所示: 我做错了什么?

  • 使用Spark 1.5和Scala 2.10.6 我试图通过一个字段“tags”(字符串数组)来筛选一个数据表。查找所有具有标记“private”的行。 得到: 线程“main”org.apache.spark.sql.analysisException中的异常:由于数据类型不匹配,无法解析“contains(tags,private)”:参数1需要字符串类型,但“tags”是数组类型; 更新:标

  • 问题内容: 我有一个像这样的数组: 我要做的是删除“苹果”。 我的问题很基本,但是,我搜索了网站,发现java并不真正支持从数组中删除功能。我还听说过使用Java Utils,因为删除项目非常简单…。我试图在Google上找到Java Utils,但是几乎所有链接都消失了。 所以最后…有什么方法可以从字符串数组中删除字符串? 即使我使用ArrayList,也找不到在其中生成随机项的方法!例如:在普

  • 问题 你想要根据布尔条件来筛选数组。 解决方案 使用 Array.filter (ECMAScript 5): array = [1..10] array.filter (x) -> x > 5 # => [6,7,8,9,10] 在 EC5 之前的实现中,可以通过添加一个筛选函数扩展 Array 的原型,该函数接受一个回调并对自身进行过滤,将回调函数返回 true 的元素收集起来。 # 扩展 A

  • 问题内容: 我正在制作一个基于Java中字符串处理的程序,其中需要从字符串数组中删除重复的字符串。在此程序中,所有字符串的大小均相同。 “数组”是一个字符串数组,其中包含许多字符串,其中两个字符串彼此相似。因此,使用下面的代码,必须删除重复的字符串,但是不能删除。 如何删除重复的字符串? 我正在使用以下代码。 问题答案: 这会工作 或者只使用a 而不是数组。

  • 我正在用Java制作一个基于字符串处理的程序,在这个程序中,我需要从字符串数组中删除重复的字符串。在这个程序中,所有字符串的大小都是相同的。 “数组”是一个字符串数组,包含许多字符串,其中两个字符串彼此相似。因此,使用下面的代码必须删除重复的字符串,但不会删除。 如何删除重复字符串? 我正在使用以下代码。