我想在 var a
和 var b
之间进行逻辑与并将结果分配给 var a
我知道如何使用按位与来做到这一点:a &= b
但我想要的不是 1
或 0
作为结果,而是 true
或 false
(即逻辑而不是按位) 。我可以在 JavaScript 中执行此操作吗?
var boolArr1 = [true, true, true];
var boolArr2 = [true, true, false];
var res1 = true;
var res2 = true;
boolArr1.forEach(i => res1 &= i);
boolArr2.forEach(i => res2 &= i);
document.write("res1 = "+res1); //should write true instead of 1
document.write("<br>");
document.write("res2 = "+res2); //should write false instead of 0
注意。我知道我可以a = a && b
最佳答案
没有等效的单个(组合)运算符可以执行a = a && b
。
您可以稍微修改代码来实现您想要的效果,但实际上它只是将其隐藏在函数调用和结果后面:
var boolArr1 = [true, true, true, null, true];
var boolArr2 = [true, true, false];
var res1 = boolArr1.reduce((prev, cur) => prev && cur, true);
var res2 = boolArr2.reduce((prev, cur) => prev && cur, true);
document.write("res1 = "+res1); // writes true
document.write("<br>");
document.write("res2 = "+res2); // writes false
要记住的另一点是没有进行类型转换。 &&
运算符求值为该运算符两侧的一个值,第一个值可以转换为 false
,如果不是,则第二个值。
关于javascript - 逻辑与赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34027869/