javascript - 检查/引用空数组值(Google App 脚本)

标签 javascript arrays google-apps-script google-sheets

我有一个 Google 电子表格,可以为每月的工作旅行做一些简单的单元格引用和数学运算。我有一个函数可以读取 A 列中的值(这是通过工作表上的 WEEKDAY() 公式获得的。如果是星期六(值 5)或星期日(值 6),它会将整行涂黑。我需要它以某种方式格式化工作日(值 0-4),并且仅当该行中的日期单元格为空白时,将该行重新格式化回标准空白。如何搜索数组(您可以看到我是如何创建它的)并在该数组中找到一个空值?我将复制粘贴数组值的示例日志(注意周期性 [])

function weekendClean() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var sheet = ss.getActiveSheet()
  var range = sheet.getRange("A3:A33")
  var value = range.getValues()
  var sheetCheckRange = sheet.getRange(2,2)
  var sheetCheck = sheetCheckRange.getValue()
  if (sheetCheck == "Date") {
    for (i = 0; i < value.length; i++) {
      if (value[i] == 5 || value[i] == 6) {
        var row = sheet.getRange((i + 3), 1, 1, 11)
        var cell = sheet.getRange((i + 3), 3)
        row.setBackground("Black")
        row.setBorder(true, null, true, null, null, null)
        //top, left, bottom, right, vertical, horizontal
        cell.setValue("W")
      } if (value[i] == 0 || value[i] == 1 || value[i] == 2 || value[i] == 3 || value[i] == 4) {
        var section1 = sheet.getRange((i+3), 2, 1, 5)
        var section2 = sheet.getRange((i+3), 8, 1, 3)
        section1.setBackground("white")
        section2.setBackground("white")
        section1.setBorder(false, null, false, null, null, false)
        section2.setBorder(false, null, false, null, null, false)
      } 
    }
  }
}

此外,请随意清理带有解释的代码(特别是对于阅读工作日做什么的部分)

[15-09-01 17:54:04:051 PDT] [[1.0], [2.0], [], [4.0], [5.0], [6.0],
[0.0], [1.0], [], [3.0], [4.0], [5.0], [], [], [1.0], [], [3.0],
[4.0], [5.0], [6.0], [0.0], [1.0], [2.0], [3.0], [], [5.0], [6.0],
[0.0], [1.0], [2.0], []]

最佳答案

在您的情况下,这就是您检索空数组的方式:

var x = [[1.0], [2.0], [], [4.0], [5.0], [6.0], [0.0], [1.0], [], [3.0], [4.0], [5.0], [], [], [1.0], [], [3.0], [4.0], [5.0], [6.0], [0.0], [1.0], [2.0], [3.0], [], [5.0], [6.0], [0.0], [1.0], [2.0], []];

function myFunction(x) {
 for (var i = 0; i < x.length; i ++) {

  if(x[i].length == 0){
    // array is empty 
    Logger.log('empty'); 
   } else {
    //array not empty
    Logger.log('not empty');
  }

 }
}

我还注意到“;”您的陈述中缺少。您的脚本按原样运行?

干杯

关于javascript - 检查/引用空数组值(Google App 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343116/

相关文章:

python - 删除元组中的以下重复项

java - 尝试添加两个 int 数组时出现 "ArrayIndexOutOfBoundsException"错误

arrays - 当它们看起来相同时,为什么编译器会说实现 "differs from the previous declaration"?

google-apps-script - 如何将 Google Workspace Marketplace Add-on 添加到 Application Launcher?

javascript - HTML 表单不使用 doPost 提交到电子表格

javascript - Chartjs scaleLabel位置

javascript - sql 仅返回 1 行,如何访问其余行?

javascript - 在 Vue.js 模板中调用函数

javascript - 访问对象的属性名称

javascript - 谷歌脚本 UrlFetchApp “method” : “delete” not working