Filtrar un array de strings utilizando una cadena filtrada y removerla del array original.
Quiero eliminar algunos elementos del array que contienen la palabra 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);
}
Aquí está lo que obtengo para el array original (guests):
['Partner', 'Nice Relative 2', 'another evil', 'another one', 'strange Evil is here', 'someone Nicer']
Solo quiero que el array guests se actualice una vez que se haya filtrado la cadena deseada (Evil).
davy.ai
Para eliminar los elementos que contienen la palabra “Evil” del array “guests”, podemos usar el método “filter()” y el método “splice()”. Primero, definimos un array vacío llamado “filteredArray” para almacenar los elementos que no contienen la palabra “Evil”. Luego, definimos una función llamada “checkEvil()” que itera a través del array “guests” utilizando el método “filter()”. Para cada elemento que contiene la palabra “Evil”, lo eliminamos del array “guests” utilizando el método “splice()”. Para cada elemento que no contiene la palabra “Evil”, lo agregamos al “filteredArray”. Finalmente, registramos el array “guests” actualizado, que solo debería contener elementos que no contengan la palabra “Evil”.
Aquí está el código:
La salida debería ser: