Estoy tratando de filtrar las palabras que incluyen zz o ZZ , pero no consigo que funcione. Estoy tratando de usar includes() dentro del método filter() . No estoy seguro si el || operando es la elección correcta aquí.
function removeZZ (str){ let splitStr = str.split(" ") let noBuzz = splitStr.filter(word => !word.includes("zz") ||!word.includes("ZZ") ) return noBuzz.join(" ") }Puede usar word.toLowerCase().includes
const str = "wed zzAA ZZSS 34f34f" function removeZZ(str) { return str .split(" ") .filter(word => !word.toLowerCase().includes("zz")) .join(" "); } console.log(removeZZ(str)) Con su enfoque, necesita usar && en lugar de ||
const str = "wed zzAA ZZSS 34f34f" function removeZZ(str) { let splitStr = str.split(" ") let noBuzz = splitStr.filter(word => !word.includes("zz") && !word.includes("ZZ")) return noBuzz.join(" ") } console.log(removeZZ(str))O simplemente puede escribir cada palabra en minúsculas y verificar si incluye 'zz'. Pruebe el siguiente ejemplo.
function removeZZ (str){ let splitStr = str.split(" ") let noBuzz = splitStr.filter(word => !word.toLowercase().include('zz')) return noBuzz.join(" ") }Su lógica está un poco invertida al usar el || en lugar del operador && .
En su lugar, podrías escribir esto:
let noBuzz = splitStr.filter(word => !word.includes("zz") && !word.includes("ZZ") )O use una matriz de palabras bloqueadas en su lugar:
let noBuzz = splitStr.filter(word => !["zz", "ZZ"].includes(word))O, como son lo mismo y solo el caso es diferente, pruebe con Regex:
let noBuzz = splitStr.filter(word => !word.match(/zz/i))