if-statement - Googlescript 'if' question - 只做两个任务之一
问题描述
我有“else if”语句,只有在前一个“if”没有执行时才需要调用它。第一个'if'(检查状态)工作完美,第二个工作完美,但'else if'每次都完成,因为表中有不同的类型(A,B,C等)
编辑: 1.如果没有打开的A,则必须添加新行;2.如果有不止一个A-都必须关闭;3. 忽略所有其他类型,仅在没有 As open 的情况下添加新行;
这是我的代码:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetName');
var data = sheet.getRange(2,1,sheet.getLastRow(),2).getValues();
var nextRow = SpreadsheetApp.getActiveSheet().getDataRange().getLastRow()+1;
for (var i=0; i<data.length; i++){
var row = data[i];
var type = row[0];
var status = row[1];
//check it always
if (status != 'close'){
//check first and if it's true don't do 'else if'
if (type == 'A') {
sheet.getRange(i+2,2).setValue('close')
}
//this should only be called if the previous 'if' is not true
else if (type != 'A' && type != ''){
var values = [['A','open']];
sheet.getRange("A"+nextRow+":B"+nextRow).setValues(values);
}
}
}
}
解决方案
流动:
- 遍历所有数据以查找是否有“A:Open”
- 如果在所有数据中找到,只需关闭该行
- 否则,添加一个新行:“A:Open”
- 使用布尔变量 (
isThereASingleAOpen
) 来跟踪 A:Open found 状态
示例脚本:
function closeAandAddOpenA() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetName');
//Separate range and data
var range = sheet.getRange(2, 1, sheet.getLastRow(), 2);
var data = range.getValues();
//Is there a A Open in the data? Let's assume there's none
var isThereASingleAOpen = false;
//Loop through data array
for (var i = 0; i < data.length; i++) {
var row = data[i];
var type = row[0];
var status = row[1];
//If status is != close and type == 'A'
if (status != 'close' && type == 'A') {
//Change current row status to close in the data array
row[1] = 'close';
//Oops We were wrong. There was a A open in the data
isThereASingleAOpen = true;
}
} //Loop closed
//Set the modified data back to the range
//Batch operations are faster
range.setValues(data);
//if there is NOT a single A open in all of data, Append a new line
if (!isThereASingleAOpen) {
sheet.appendRow(['A', 'Open']);
}
}
推荐阅读
- android - 如果我在Android中使用协程读/写Realm以避免阻塞UI,是否还需要使用后台线程?
- c - 存储变量的地址
- ios - “无法解析主机“<在此处插入 URL>”没有与主机名关联的地址”
- python - 使用 Python 和 Beautiful Soup 抓取 Google 新闻结果只检索没有标题的第一页
- python - 如何取消函数中的事件
- c++ - 用于筛子的最佳数据结构是什么(即一些被划掉的数字列表)?
- bash - 获取自定义 bash 脚本的可接受方式是什么?
- c# - 为什么在比较位图时,LockBits 比比较像素快得多
- python - 如何从“ravi”文件中获取数据?
- c# - 用于分析字符串文字的 RoslynAnalyzer 操作