I am inside a for loop trying to add up a number. The code is working fine, but I was asking myself if there might be shorter form for the following line:
price = ve.select ? price + ve.price : price;
if ve.select is true, the price is increased by ve.price, if its false, then price stays.
I am searching for something similar like this line (I know this code snippet does not work):
price = ve.select ? price + ve.price;
You have several options:
An if statement
if (ve.select) {
price += ve.price;
}
Or if you prefer it on one line:
if (ve.select) price += ve.price;
The conditional operator version you've shown:
price = ve.select ? price + ve.price : price;
...but note that it does an unnecessary assignment when ve.select is falsy (though as price is presumably a simple variable that's not an issue; with an object property that might be an accessor property it can matter).
Using the && (logical AND) operator:
ve.select && price += ve.price;
But note that this is really just an if statement in disguise.
Tamás Sallai's answer providing an alternative use of the conditional operator (price += ve.select ? ve.price : 0;).
I'd reverse the ternary and use +=:
price += ve.select ? ve.price : 0;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With