三元运算符中的多项操作
Multiple operations in ternary operator
是否可以在三元运算符的 if/else 中进行多个操作?
我在下面想出了一个例子,可能不是最好的例子,但我希望你明白我的意思。
var totalCount = 0;
var oddCount = 0;
var evenCount = 0;
for(var i = 0; i < arr.length; i++) {
if(arr[i] % 2 === 0) {
evenCount ++;
totalCount ++;
} else {
oddCount ++;
totalCount ++;
}
}
变成类似这样的东西:
var totalCount = 0;
var oddCount = 0;
var evenCount = 0;
for(var i = 0; i < arr.length; i++) {
arr[i] % 2 === 0? evenCount ++ totalCount ++ : oddCount ++ totalCount ++;
}
}
您可以使用 comma operator 来执行多个表达式来代替单个表达式:
arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++);
逗号运算符的结果是最后一个表达式的结果。
但是,是的,不要使用条件运算符来产生副作用。
是否可以在三元运算符的 if/else 中进行多个操作?
我在下面想出了一个例子,可能不是最好的例子,但我希望你明白我的意思。
var totalCount = 0;
var oddCount = 0;
var evenCount = 0;
for(var i = 0; i < arr.length; i++) {
if(arr[i] % 2 === 0) {
evenCount ++;
totalCount ++;
} else {
oddCount ++;
totalCount ++;
}
}
变成类似这样的东西:
var totalCount = 0;
var oddCount = 0;
var evenCount = 0;
for(var i = 0; i < arr.length; i++) {
arr[i] % 2 === 0? evenCount ++ totalCount ++ : oddCount ++ totalCount ++;
}
}
您可以使用 comma operator 来执行多个表达式来代替单个表达式:
arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++);
逗号运算符的结果是最后一个表达式的结果。
但是,是的,不要使用条件运算符来产生副作用。