dataSize.map((x) => { if(x.indexOf >-1 !== true) { return x; } }); la salida es así ['XL', undefined, 'S', undefined] en lugar de ['XL', 'S']
En términos de Array.map() y Array.filter() , el primero se usa para manipular elementos de matriz y el segundo para filtrar o, en otras palabras, seleccionar elementos de matriz particulares en función de una condición.
Cuando se utiliza el método includes() , se realiza una búsqueda que distingue entre mayúsculas y minúsculas para determinar si una cadena se puede encontrar dentro de otra cadena, devolviendo verdadero o falso según corresponda.
const dataSize = ["XL", "M,L,XL", "S", "X,L"]; console.log(dataSize.filter((s) => !s.includes(",")));Puede usar filtros de matriz, si la función pasada como parámetro a la función de filtro devuelve falsey, se eliminará de la matriz.
Su solución, con el mapa, no funcionó porque manipula los valores, pero no los elimina.
const dataSizes = ['XL', 'M,L,XL', 'S', 'X,L'] const filteredDataSizes = dataSizes.filter((size) => !size.includes(",")); console.log(filteredDataSizes);Puede usar el filtro para iterar la matriz. Y una buena función JS para verificar esto incluiría.
const dataSize = ['XL', 'M,L,XL', 'S', 'X,L'] let n = dataSize.filter(e => !e.includes(',')) console.log(n)