【发布时间】:2022-01-16 08:00:36
【问题描述】:
我想从包含单词 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);
}
这是我得到的原始数组(guests):
['合作伙伴','好亲戚2','另一个邪恶','另一个','奇怪的邪恶在这里','更好的人']只希望在过滤所需字符串 (Evil) 后更新 guests 数组。
【问题讨论】:
-
查看
filter和includes或indexOf方法,developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
不知何故原始代码没有出现在这里。编辑了问题。
-
看看filter方法是如何工作的,它返回新的元素数组,当回调的输出为真时返回元素,所以你不需要使用额外的数组。
标签: javascript arrays filtering array-splice