gpt4 book ai didi

javascript - GAS OR 运算符使两个测试都被忽略

转载 作者:行者123 更新时间:2023-12-02 23:36:56 26 4
gpt4 key购买 nike

我让这个函数循环遍历所有工作表,如果工作表未隐藏,则将工作表名称添加到数组 out 中。

function sheetnames() {

var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

var out = new Array()
for (var i=0 ; i<sheets.length ; i++)
if (sheets[i].isSheetHidden()!= true){
out.push( [ sheets[i].getName() ]
)}
Logger.log(out);
}

我还想测试特定的工作表名称,我可以使用

if (sheets[i].getSheetName()!= 'Sheet1'){

但是,当我将它们与 OR 运算符放在一起时,这两个测试都会被忽略。

if (sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1'){

我不确定这是否是我处理 || 的方式,还是我没有看到的其他内容。

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

最佳答案

(sheets[i].isSheetHidden()!= true || sheets[i].getSheetName()!= 'Sheet1')
如果当前工作表未隐藏或未命名为“Sheet1”,

将返回true。或者换句话说,它仅返回 true 如果当前工作表名为“Sheet1”并且处于隐藏状态 。这可能不是您想要的,是吗?也许您正在寻找的是 && AND 逻辑运算符?

另外,我建议您研究一下格式化代码,为什么应该使用 !== 而不是 !=,并参阅 this question有关使用 var a = [];var b = new Array();

的信息

关于javascript - GAS OR 运算符使两个测试都被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56253332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com