Usé esto para eliminar los espacios en blanco de una cadena.
returnString.split(" ").filter(substr => substr !== "");En mi cabeza debería ser esto:
returnString.split(" ").filter(substr => substr !== " ") //note the space between the " "¿Por qué el de abajo no funciona? ¿Es la sintaxis JS?
Respuesta: si hay un espacio al comienzo de la cadena, se divide con una cadena vacía (así que substr !== "") lo elimina de la matriz devuelta al dividir la cadena.
returnString.replace(/\s/g,'') Sería una forma superior de hacer esto.
"" es una cadena vacía.
" " es un carácter de espacio.
No se pueden usar indistintamente.
"" es una cadena vacía.
Si hay un espacio al comienzo de la cadena, dividirá ese espacio con una cadena vacía.
es por eso que se necesita substr !== "" para eliminar la cadena vacía.
Como se menciona en los comentarios, está dividiendo en espacios en blanco, creando índices para dichos espacios en blanco en una matriz.
const returnString = 'Hello I am Victor' const str = returnString.split("").filter(substr => substr !== " "); console.log(str.join(''))le daría el resultado deseado.
Sin embargo, un patrón de expresiones regulares sería el más adecuado para este caso de uso.
returnString.replace(/\s/g, '')