字符串模板中的三元运算符

时间:2018-06-03 14:04:38

标签: javascript ecmascript-6

有一种紧凑的方法来构建一个带有可选参数的字符串吗?

let q = `CREATE "a"
            ${this.date ? ` SET date = '${this.date}'` : ''}
            ${this.description ? ` SET description = '${this.description}'` : ''}
            RETURN n`;

没有else案例返回空字符串''

修改:目前的结果是:

CREATE "a"


RETURN n

这只是一个美学问题,我宁愿没有那些空行

使用布尔运算符&&不起作用(它将undefined作为字符串返回):

${this.date && ` SET date = '${this.date}'`}

2 个答案:

答案 0 :(得分:3)

您可以使用条件&&价值|| “”,但这几乎等同于使用三元运算符。

另一个可用选项是在此处尝试标记模板,以丢弃空值:

Map

答案 1 :(得分:-1)

你打开'''你已经不能在中间使用了它。

let q = `CREATE "a"
            ${this.date ? SET date = '${this.date}' : ''}
            ${this.description ? SET description = '${this.description}' : ''}
            RETURN n`;

或使用:

let date = this.date ? "SET date = '${this.date}'" : '';
let description = this.description ? "SET description = ${this.description}" : '';

 let q = `CREATE "a"
                ${date}
                ${description}
                RETURN n`;