我创建了一个从远程JSON读取值的项目。在此项目中,远程JSON可以为我提供16种不同类型的警报变量。通过以int表示的十六进制值实现。因此,如果有第三个警报,则应返回我8(乘以1000),如果有第二,第八和第十警报,则应返回我1284(二进制为10100000100)。好吧,当没有警报时,它将返回我0。
因此,我在JS中创建了一个函数(根据here),如果有警报,则传递返回的值(示例中为8/1284/0)将返回一个简单的true或false。该功能非常简单:

function IsOnAlarm(passedVal) {
    if (passedVal & 0) {
        return false;
    } else {
        return true;
    }
}


但它不起作用:-(
我创建一个JSFiddle来显示问题。我该如何解决?提前致谢。

最佳答案

据我了解,您只需要检查该值是否为0。就不需要任何按位运算。

function IsOnAlarm(passedVal) {
    return passedVal != 0;
}


旁注:passedVal & 0始终是0,无论passedVal是什么(这就是为什么它总是转到else)的原因。

10-07 21:12