javascript - 条件运算符,添加后检查结果的简化方法

标签 javascript conditional-statements

我正在为一个 friend 开发游戏,在类的统计数据构建部分,我有一个部分根据类(战士、法师等)为统计数据添加基本修改器,但最终统计数据不能小于零。

目前有这个:

this.stats[i] += type[i];
if(this.stats[i] < 0) {
    this.stats[i] = 0;
}

这很好,有点多余,但我想知道是否可以在一行中完成此操作。我对此表示怀疑,但我很好奇我是否错了。

类似于:

this.stats[i] += type[i] < 0 ? // etc;

但我知道这只会在将变量添加到当前 int 之前运行条件。此外,是的,仅使用整数,不使用 float 或字符串或其他任何东西,这些都在其他地方处理。

最佳答案

+= 之类的赋值返回分配的值。如果运算符优先级不符合您的要求,只需添加括号即可。

if((this.stats[i] += type[i]) < 0) this.stats[i] = 0;

但是 Math.max 可能更清晰:

this.stats[i] = Math.max(0, this.stats[i] + type[i]);

关于javascript - 条件运算符,添加后检查结果的简化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590207/

相关文章:

mysql - MySQL 上的条件语句

Linux Bash函数条件执行用户输入

JAVA .equalsIgnoreCase 不工作

javascript - 使用 grunt-contrib-jasmine 运行单个规范

javascript - 在 jQuery 中的each()函数之后进行延迟

javascript - 优化 wordpress 插件的 javascript 和 css 请求

javascript - Redux 状态更新不会传递到我的组件无状态函数中的方法

javascript - 当使用 javascript 设置父宽度时,在子 div 周围设置边距

MySQL - 设置任何列等于一个值

c# - 如果两个条件之一为真,则结束协程