Tengo esto, que funciona, pero algunos campos no siempre tienen valores (y no se procesan). ¿Hay alguna manera de incluir texto condicionalmente? Por ejemplo, entre {a}, {b} y {c}, ¿pero solo si ambos se procesan?
const yay = `${a ? a + ` | `: ""}${b ? b + ` | ` : ""}${c ? c : ""}`Puede agregarlos todos en una matriz y filtrarlos según su evaluación de valor real en javascript. Más tarde, simplemente únase al resultado como una cadena delimitada por | .
let a = "789"; let b = ""; let c = true; const result = [a,b,c].filter(ele => ele); console.log(result.join('|'))Podrías usar [a, b, c].filter(v => !!v).join('|') . Esto filtra todos los valores falsos (indefinido, nulo, falso, 0, cadena vacía, etc.), que es lo que también está haciendo su código actual.