我在一个 for 循环中试图将一个数字相加。代码工作正常,但我问自己以下行是否可能有更短的形式:
price = ve.select ? price + ve.price : price;
如果ve.select为真,则价格增加ve.price,如果为假,则价格保持不变。我正在寻找类似这一行的东西(我知道这个代码片段不起作用):
price = ve.select ? price + ve.price;
我在一个 for 循环中试图将一个数字相加。代码工作正常,但我问自己以下行是否可能有更短的形式:
price = ve.select ? price + ve.price : price;
如果ve.select为真,则价格增加ve.price,如果为假,则价格保持不变。我正在寻找类似这一行的东西(我知道这个代码片段不起作用):
price = ve.select ? price + ve.price;
你有几个选择:
一份if声明
if (ve.select) {
price += ve.price;
}
或者,如果您更喜欢一行:
if (ve.select) price += ve.price;
您显示的条件运算符版本:
price = ve.select ? price + ve.price : price;
...但请注意,当它是虚假的时,它会进行不必要的赋值ve.select(尽管price它可能是一个简单的变量,这不是问题;对于可能是访问器属性的对象属性,它可能很重要)。
使用&&(逻辑与)运算符:
ve.select && price += ve.price;
但请注意,这实际上只是if变相的声明。
Tamás Sallai 的回答提供了条件运算符 ( price += ve.select ? ve.price : 0;) 的另一种用法。
我会反转三元并使用+=:
price += ve.select ? ve.price : 0;