javascript - 三元运算符中的多项操作

标签 javascript if-statement for-loop 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++);

逗号运算符的结果是最后一个表达式的结果。

但是,是的,不要使用条件运算符来产生副作用。

关于javascript - 三元运算符中的多项操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40266753/

相关文章:

JavaScript - 按日期对对象数组或记录中的项目进行分组

if-statement - Lua elseif 无法正常工作

python - 使用 for 循环创建一系列元组

java - 使用单个循环打印菱形数字?

javascript - 在 require.js 中覆盖 setTimeout

c# - 从 mvc Controller 设置一个 javascript 变量

javascript - 使用 javascript 清除超时

regex - 替换为条件 DTE

javascript - 如何使这个 if 语句更短?

r - 在 R 中使用波浪号 (~) 和句号 (.)