Javascript 气体或操作员会忽略这两项测试

Javascript 气体或操作员会忽略这两项测试,javascript,google-apps-script,or-operator,Javascript,Google Apps Script,Or Operator,我让这个函数在所有工作表中循环,如果工作表没有隐藏,则将工作表名称添加到数组中 但是,当我将它们与| |或运算符组合在一起时,两个测试都被忽略 if (sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1'){ 我不确定这是我处理问题的方式,还是其他我看不到的东西 在本例中,sheet1可见,因此将通过测试的第一部分 (sheets[i].isSheetHidden()!= true || sheets[i

我让这个函数在所有工作表中循环,如果工作表没有隐藏,则将工作表名称添加到数组中

但是,当我将它们与| |或运算符组合在一起时,两个测试都被忽略

if (sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1'){
我不确定这是我处理问题的方式,还是其他我看不到的东西

在本例中,sheet1可见,因此将通过测试的第一部分

(sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1')
如果当前工作表未隐藏或未命名为“Sheet1”,则将返回true。或者换句话说,仅当当前工作表名为“Sheet1”且处于隐藏状态时,才会返回true。那可能不是你想要的,是吗?也许您正在寻找的是&&和逻辑运算符


另外,我建议您研究格式化代码,为什么要使用!==而不是!=,有关使用var a=[]的信息,请参阅;与var b相比=新阵列

当你说忽略,你是什么意思?这不应该发生-你的代码应该工作得很好。
if (sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1'){
(sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1')