Quiero concatenar diferentes variables si existen y devolver el resultado. Pero necesito separar el valor por "-" y devolver solo la variable con valor.
Así que tengo esto:
var test = ""; var test1 = ""; var test2 = ""; var test3 = ""; var checkTrue = "Rightt"; var checkFalse = "Wrong"; var checkWord = "Helloo"; var checkWord2 = "Bye"; if(checkTrue === "Right"){ test = "This is right" } else { test = ""; } if(checkFalse === "Wrong"){ test1 = "This is wrong" } else { test1 = ""; } if(checkWord === "Hello"){ test2 = "The word is hello" } else { test2 = ""; } if(checkWord2 === "Bye"){ test3 = "The word is hello" } else { test3 = ""; } var result = test + " - " + test1 + " - " + test2 + " -" + test3; console.log(result);Entonces, creo que necesito verificar antes de mi resultado var, si existe la variable diferente.
Gracias por tu ayuda
Resultado actual:
- This is wrong - -The word is helloResultado Esperado :
This is wrong - The word is helloCon cualquier cosa en la que desee un separador entre los valores de cadena, me resulta más fácil usar Array.prototype.join() que solo colocará el separador entre los valores reales.
Luego se vuelve más fácil ya que tiene una única matriz de results que se puede unir, solo agregando los valores que desea en lugar de probar cada una de esas variables que ya no necesita.
Al presionar en una matriz, también puede deshacerse de todas esas variables de test .
const results = []; const checkTrue = "Rightt"; const checkFalse = "Wrong"; const checkWord = "Helloo"; const checkWord2 = "Bye"; if (checkTrue === "Right") results.push("This is right") if (checkFalse === "Wrong") results.push("This is wrong") if (checkWord === "Hello") results.push("The word is hello") if (checkWord2 === "Bye") results.push("The word is hello") const result = results.join(" - "); console.log(result); const test = ''; const test1 = 'This is wrong'; const test2 = ''; const test3 = 'The word is hello' const result = [test, test1, test2, test3].filter(value => value).join(' - '); console.log(result);