Me preguntaba cuál es la mejor manera de unir algunas cadenas en javascript, excepto si están vacías.
di que tenemos
let s1 = 'X = 1'; let s2 = ''; let s3 = 'Z = 3';Y mi resultado final debe ser "X = 1, Z = 3"
let str = [s1,s2,s3].join(',') // will have extra comma let str = [s1!??' , ' ,s2!??' , ' ,s3].join(' ') //is ugly, and will not work let str = [u1&&',' ,u2&&',',u3].join('') //close, but no cigar.¡Pero estoy seguro de que debe haber una manera elegante de hacer esta unión!
Y alguien aquí en stackoverflow me indicará la dirección correcta.
Puede usar .filter(Boolean) (que es lo mismo que .filter(x => x)) elimina todos los valores falsy (nulos, indefinidos, cadenas vacías, etc.)
Demostración de trabajo:
let s1 = 'X = 1'; let s2 = ''; let s3 = 'Z = 3'; let str = [s1,s2,s3].filter(Boolean).join(", "); console.log(str);También puede lograr lo mismo usando el siguiente código. Filter Boolean elimina todos los valores falsey como indefinidos, cadenas vacías, nulas, etc.
let str = [u1,u2,u3].filter(Boolean).join(',');