【问题标题】:Multiple operations in ternary operator三元运算符中的多重运算
【发布时间】:2017-03-09 02:00:48
【问题描述】:

三元运算符的 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 ++;
  }
}

【问题讨论】:

标签: javascript if-statement for-loop ternary-operator


【解决方案1】:

您可以使用comma operator 来执行多个表达式来代替单个表达式:

arr[i] % 2 === 0? (evenCount++, totalCount++) : (oddCount++, totalCount++);

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 2011-12-07
    • 2020-04-29
    • 2021-10-06
    • 2013-10-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多