Aps*_*wak 3 javascript for-loop if-statement 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 ++;
}
}
Run Code Online (Sandbox Code Playgroud)
变成这样的东西:
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 ++;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用逗号运算符来代替单个表达式执行多个表达式:
arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++);
Run Code Online (Sandbox Code Playgroud)
逗号运算符的结果是最后一个表达式的结果.
但是,不要使用条件运算符来产生副作用.