有条件地在多个值之间包含文本?
Conditionally include text between multiple values?
我有这个,它可以工作,但有些字段并不总是有值(并且不呈现)。有没有办法有条件地包含文本?例如,在 {a}、{b} 和 {c} 之间,但前提是它们都被渲染了?
const yay = `${a ? a + ` | `: ""}${b ? b + ` | ` : ""}${c ? c : ""}`
您可以使用 [a, b, c].filter(v => !!v).join('|')
。这会过滤掉所有虚假值(undefined、null、false、0、空字符串等),这也是您当前代码所做的。
您可以将它们全部添加到一个数组中,并根据它们在 javascript 中的 真实性 值评估来过滤它们。稍后,只需将结果作为由 |
.
分隔的字符串加入
let a = "789";
let b = "";
let c = true;
const result = [a,b,c].filter(ele => ele);
console.log(result.join('|'))
我有这个,它可以工作,但有些字段并不总是有值(并且不呈现)。有没有办法有条件地包含文本?例如,在 {a}、{b} 和 {c} 之间,但前提是它们都被渲染了?
const yay = `${a ? a + ` | `: ""}${b ? b + ` | ` : ""}${c ? c : ""}`
您可以使用 [a, b, c].filter(v => !!v).join('|')
。这会过滤掉所有虚假值(undefined、null、false、0、空字符串等),这也是您当前代码所做的。
您可以将它们全部添加到一个数组中,并根据它们在 javascript 中的 真实性 值评估来过滤它们。稍后,只需将结果作为由 |
.
let a = "789";
let b = "";
let c = true;
const result = [a,b,c].filter(ele => ele);
console.log(result.join('|'))