javascript - 你如何为布尔检查器编写这个 if/else 语句
问题描述
我有这些变量
let isactive
let istradeable = true
let issellable = false
let isrevocable
let isburnable
我有一个 if/else 基本上查看这些变量并检查它们是否不为空,以及它是否没有将其值分配给新变量。如果为 NULL,则将变量设置为 true
if (isactive == null) {
isactive = true
} else {
this.isactive = isactive
}
if (istradeable == null) {
istradeable = true
} else {
this.istradeable = istradeable
}
if (issellable == null) {
issellable = true
} else {
this.issellable = issellable
}
if (isrevocable == null) {
isrevocable = true
} else {
this.isrevocable = isrevocable
}
if (isburnable == null) {
isburnable = true
} else {
this.isburnable = isburnable
}
这可行,但我正在寻找一个简单的函数,或者可能是一个更好的 if/else 语句来做同样的事情。多谢你们!
解决方案
我猜你正在寻找
this.isactive = (isactive == null) ? true : isactive;
this.istradeable = (istradeable == null) ? true : istradeable;
this.issellable = (issellable == null) ? true : issellable;
this.isrevocable = (isrevocable == null) ? true : isrevocable;
this.isburnable = (isburnable == null) ? true : isburnable;
或更简单
this.isactive = isactive == null || isactive;
this.istradeable = istradeable == null || istradeable;
this.issellable = issellable == null || issellable;
this.isrevocable = isrevocable == null || isrevocable;
this.isburnable = isburnable == null || isburnable;
当然你也可以写一个函数:
function from(value) {
if (value == null) return true;
else return value;
}
this.isactive = from(isactive);
this.istradeable = from(istradeable);
this.issellable = from(issellable);
this.isrevocable = from(isrevocable);
this.isburnable = from(isburnable);
推荐阅读
- android - 如何在 Android Studio 中使用 Junit4 创建测试套件来运行特定的测试用例
- opencv - 在树莓派 3、Raspbian Stretch 上安装 opencv-python
- r - 如何在R中模拟河流水位上升
- gdb - 在 VSCode 中将 gdb(C++ 调试器)附加到远程 python 进程
- html - Bootstrap 4侧边栏菜单下拉菜单
- python - 知道如何导入此数据集吗?
- r - 用值和标题标记 geom_hline()
- react-native - 在本机反应中将图像转换为base64
- visual-studio-2017 - Azure Cosmos DB 处于“正在创建”状态
- javascript - jest --watch 或 --watchAll 是否忽略 --runInBand 选项?