仅当flag为true时才应显示字符串,但如果为false则将标志添​​加到字符串中

时间:2019-01-18 20:04:36

标签: javascript

我正在尝试根据标志值构建字符串

return `${super.getDetails()} Electric: ${this.isElectric} ${flag && '|hatchback'}`;

这会显示-2014 Chevy Malibu Electric: false false,如果标志为假

我希望它显示2014 Chevy Malibu Electric: false

return `${super.getDetails()} Electric: ${this.isElectric} ${flag && '|hatchback'}`;

如果标志为true,则显示完美答案

2014 Chevy Malibu Electric: false |hatchback

尝试的代码:     如果标志为假,     返回${super.getDetails()} Electric: ${this.isElectric} ${flag && '|hatchback'};

预期:

2014 Chevy Malibu Electric: false

实际:

2014 Chevy Malibu Electric: false false

2 个答案:

答案 0 :(得分:2)

使用三元运算符而不是逻辑运算符,因此可以在错误的情况下返回空字符串。

return `${super.getDetails()} Electric: ${this.isElectric} ${false ? '|hatchback' : ''}`;

return `${super.getDetails()} Electric: ${this.isElectric} ${true ? '|hatchback' : ''}`;

答案 1 :(得分:0)

当您在模板文字(flag && |hatchback)的占位符中评估${flag && '|hatchback'}时,将不可避免地打印标志变量或|hatchback的值。代替使用&&运算符,而使用像这样的三元运算符:

return `${super.getDetails()} Electric: ${this.isElectric} ${flag ? '|hatchback': ''}`;