首页 > 解决方案 > 你如何为布尔检查器编写这个 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 语句来做同样的事情。多谢你们!

标签: javascriptif-statement

解决方案


我猜你正在寻找

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);

推荐阅读