首页 > 解决方案 > 在三元运算符中使用 count + 1 可以吗?

问题描述

我想要做的是检查数组中是否有元素,如果是,我想增加计数器。编译器在我执行 count++ 时报告错误,但在我执行 count + 1 时不报告错误,并且它正确递增。是不是因为 count++ 是运算而不是表达式,而 count + 1 是表达式?

let count = 0;

//not working
count = checkArr(arr) ? count++ : count;

//working
count = checkArr(arr) ? count + 1 : count;

标签: javascriptternary

解决方案


没有什么是禁止的,但可以采用一些好的做法。

在同一行中混合分配count =、调节?:和后增量++很多。

在编写代码时,始终寻求最简单的解决方案。在你的情况下:

if (checkArr(arr)) {
  count += 1;
}

比在该特定上下文中似乎不合适的三元更容易理解。


有现有的工具审计代码质量,如 sonarqube、eslint ...

他们总是要求简单。

关于三元规则的示例:

关于后/前增量的示例:

他们希望编码人员避免使用 ++/--,因为对于某些人来说,这可能会产生误导。很多人不知道它们之间的区别++var以及var++可能导致错误的地方。更喜欢var += 1;.


推荐阅读