我正在尝试根据标志值构建字符串
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
答案 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': ''}`;