javascript - 逻辑与赋值

标签 javascript

我想在 var avar b 之间进行逻辑与并将结果分配给 var a

我知道如何使用按位与来做到这一点:a &= b 但我想要的不是 10 作为结果,而是 truefalse (即逻辑而不是按位) 。我可以在 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/

相关文章:

javascript - Twitter Bootstrap Collapse/Responsive Nav 在 FF/Chrome 中不工作

javascript - &lt;script async> 无法在 Rails 中工作

javascript - 如何在 JavaScript 中搜索其他不区分大小写的对象?与 _.where() 一样,仅不区分大小写

javascript - 单击按钮后自动搜索(ajax 调用)不起作用

javascript - 在 firebase 上应用脚本成功进行身份验证

javascript - JSDoc 中的动态@returns,基于@param 值

javascript - 多个div Vticker的jquery选择器

javascript - 为什么 Firebase 获取的 Facebook 用户 ID 与 Facebook Graph 中与同一帐户相关联的 Facebook ID 不同?

javascript - 如何在 sequelize 中使用 afterCreate Hook 创建另一个实例

javascript - 发生ng点击功能时如何更改跨度的文本颜色和背景颜色