Javascript 逻辑与赋值
我想在Javascript 逻辑与赋值,javascript,Javascript,我想在var a和var b之间进行逻辑AND运算,并将结果分配给var a 我知道如何使用按位AND:a&=b 但是,我希望true或false(即逻辑而不是按位)而不是结果为1或0。我可以用javascript做这个吗 var boolArr1=[true,true,true]; var boolArr2=[true,true,false]; var res1=真; var res2=真; boolar1.forEach(i=>res1&=i); forEach(i=>res2&=i);
var a
和var b
之间进行逻辑AND运算,并将结果分配给var a
我知道如何使用按位AND:a&=b
但是,我希望true
或false
(即逻辑而不是按位)而不是结果为1
或0
。我可以用javascript做这个吗
var boolArr1=[true,true,true];
var boolArr2=[true,true,false];
var res1=真;
var res2=真;
boolar1.forEach(i=>res1&=i);
forEach(i=>res2&=i);
文件。写入(“res1=“+res1”)//应该写为true而不是1
文件。写(“
”);
文件。写入(“res2=“+res2”)//应该写入false而不是0
没有等效的单个(组合)运算符执行a=a和&b
您可以稍微修改代码以实现所需的功能,但实际上它只是将其隐藏在函数调用和结果后面:
var boolArr1=[true,true,true,null,true];
var boolArr2=[true,true,false];
var res1=boolArr1.reduce((上一个,当前)=>上一个和当前,true);
var res2=boolArr2.reduce((上一个,当前)=>上一个和当前,真);
document.write(“res1=”+res1);//写对了
文件。写(“
”);
document.write(“res2=”+res2);//写入错误
var boolArr1=[true,true,true];
var boolArr2=[true,true,false];
var res1=真;
var res2=真;
boolar1.forEach(i=>res1&=i);
forEach(i=>res2&=i);
document.write(“res1=“+Boolean(res1))//应该写为true而不是1
文件。写(“
”);
document.write(“res2=“+Boolean(res2))//应该写入false而不是0
的&=
的结果是一个整数,它是每位二进制和
运算的结果
您根本无法对布尔值使用&=
操作
检查以下各项:
var a = 1; // 001b
var b = 2; // 010b
a &= b; // 001b & 010b = 0
console.log(a); // 0
您必须始终使用a=a&&b代码>如果你是指布尔人
由于是真实的,所以数组的所有元素都是真实的我建议使用一行代码:
arr.every(b => b)
我建议结合使用
var boolArr1=[true,true,true],
boolArr2=[true,true,false];
document.write('boolArr1:'+boolArr1.every(Boolean));
文件。写(“
”);
document.write('boolArr2:'+boolArr2.every(Boolean))代码>会有帮助吗:var res1=boolArr1.every(i=>i)代码>在这种情况下可读性更强。@vp_arth-我看不出这与问题有什么关系。这个问题是关于&&
,我的答案试图解决这个问题。如果目的是测试所有值是否真实,那么您是正确的,但问题应该修改。