javascript - 在三元运算符中使用 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;
解决方案
没有什么是禁止的,但可以采用一些好的做法。
在同一行中混合分配count =
、调节?:
和后增量++
很多。
在编写代码时,始终寻求最简单的解决方案。在你的情况下:
if (checkArr(arr)) {
count += 1;
}
比在该特定上下文中似乎不合适的三元更容易理解。
有现有的工具审计代码质量,如 sonarqube、eslint ...
他们总是要求简单。
关于三元规则的示例:
- https://eslint.org/docs/rules/no-ternary
- https://eslint.org/docs/rules/no-nested-ternary
- https://eslint.org/docs/rules/no-unneeded-ternary
关于后/前增量的示例:
他们希望编码人员避免使用 ++/--,因为对于某些人来说,这可能会产生误导。很多人不知道它们之间的区别++var
以及var++
可能导致错误的地方。更喜欢var += 1;
.
推荐阅读
- python - 我正在尝试制作一个将十进制数转换为十六进制数的python程序,但是当我运行它时,它给了我一个格式转换错误
- python - Python 不再被识别
- node.js - 类型错误:无法读取对象未定义的属性“端口”。
- python - 如何将熊猫数据框的一部分替换为另一部分?
- javascript - 添加 JS 后丢失 translateY(-3px) (appearOnScroll)
- docker - letcrypt 在 docker 502 Bad Gateway for .well-known/acme-challenge
- python - 如何在 mySQL 中使用“关系视图”
- node.js - 如何从单个 id 页面向服务器发送 POST 请求 - Node JS
- active-directory - 将密钥表放在外部服务器上是否安全
- camera - 使用 sdk 检测带有 ANPR 的数字的程序