Estoy tratando de eliminar todos los elementos que coinciden con @b.com , pero devuelve una matriz vacía incluso si elimino el ! , lo que me lleva a pensar que estoy haciendo algo competentemente mal.
¿Alguien puede explicar lo que estoy haciendo mal?
const arr = ['a@a.com', 'b@b.com', 'c@c.com']; if (arr !== null && arr.length > 0) { const arr2 = arr.filter(e => { !e.match(/@b.com/); }); console.log(arr2); }Olvidó la declaración de return :
const arr = ['a@a.com', 'b@b.com', 'c@c.com']; if (arr !== null && arr.length > 0) { const arr2 = arr.filter(e => { return !e.match(/@b.com/); }); console.log(arr2); }Una cosa más, si no coincide con la expresión regular, puede usar string.includes :
const arr = ['a@a.com', 'b@b.com', 'c@c.com']; if (arr !== null && arr.length > 0) { const arr2 = arr.filter(e => { return !e.includes('@b.com'); }); console.log(arr2); }Te olvidas de la declaración de devolución .
const arr = ['a@a.com', 'b@b.com', 'c@c.com']; const arr2 = arr?.length ? arr.filter((e) => !e.match(/@b.com/)) : []; console.log(arr2);