javascript - 使用 Google Apps 脚本查找二维数组内部

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

我的数组中有以下值:

[8:00 AM, 9:00 AM] //result of another function

我想在这个二维数组中找到它们的值:

[
 [8:00 AM], 
 [9:00 AM], 
 [10:00 AM], 
 [11:00 AM], 
 [12:00 NN], 
 [1:00 PM], 
 [2:00 PM], 
 [3:00 PM]
]

并更改它们的值“不可用”

数组日志是使用以下代码从 Google Sheet 获取的值:

function testRow(){

  var lookDate = "Aug 28, 2019";
  var ss = SpreadsheetApp.openByUrl(url); 
  var ts = ss.getSheetByName("Time_Select");
  var checkData = ts.getRange(1, 1, 1, ts.getLastColumn()).getDisplayValues()[0];

  var index = checkData.indexOf(lookDate)+1;

  var timeValues = ts.getRange(2, index, ts.getLastRow()-1, 1).getValues();
  Logger.log(timeValues)

  /*var checkSplit = dateValues.join().split(",");
  var checkMe = checkSplit.indexOf(dataDisable[1]);
  var timeValues = ts.getRange(checkMe, index).getValue();*/
}

我尝试使用此代码(正如您在上面的谷歌脚本代码中看到的那样):

var checkSplit = dateValues.join().split(",");
var checkMe = checkSplit.indexOf(dataDisable[1]);
var timeValues = ts.getRange(checkMe, index).getValue();

但它给了我一个错误的值。您对如何搜索二维数组内的值然后转到其在谷歌表中的位置并将其值更改为“不可用”有任何建议或解决方案吗?预先非常感谢您的帮助。

这是我的谷歌表格的链接: https://docs.google.com/spreadsheets/d/1lEfzjG1zzJVPMN8r-OpeZm6q9_IqSwk9DNCEY-q7ozY/edit?usp=sharing

最佳答案

timeValues 的输出是字符串。如果 [8:00 AM, 9:00 AM] 的内容也是字符串,您可以通过以下方式比较它们,并在重合的情况下将相应单元格值设置为“不可用”:

function testRow(){

  var lookDate = "Aug 28, 2019";
  var ss = SpreadsheetApp.openByUrl(url); 
  var ts = ss.getSheetByName("Time_Select");
  var checkData = ts.getRange(1, 1, 1, ts.getLastColumn()).getDisplayValues()[0];

  var index = checkData.indexOf(lookDate)+1;
 // I called your array resulting from another function 'times' 
  var times=['8:00 AM', '9:00 AM'];
  var timeValues = ts.getRange(2, index, ts.getLastRow()-1, 1).getValues();
  for(var i=0;i<times.length;i++){
    for(var j=0;j<timeValues.length;j++){
      if(times[i]==timeValues[j][0]){
        timeValues[j][0]="Not Available"
      }
    }
  }
 ts.getRange(2, index, ts.getLastRow()-1, 1).setValues(timeValues);
}

基本上,您循环遍历两个数组,当内容一致时,您将 timeValues 的相应条目替换为“不可用”。退出循环后,您将更新的 timeValues 数组的值分配给您的范围。

关于javascript - 使用 Google Apps 脚本查找二维数组内部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57658979/

相关文章:

javascript - Grunt-Browserify 忽略选项

Javascript 数组扩展方法在 for 循环中被迭代

javascript - 奇怪的 Javascript 时区与 Date()

javascript - 如何使用 Bower 构建依赖关系(例如highlight.js)?

关于 ArrayList<Integer>[] x 的 Java 问题

python - Tensorflow:将张量作为一个整体进行字符串化(不创建字符串张量)

google-apps-script - 使用 Google 电子表格中的脚本从手机获取我的当前位置

java - StringBuffer 和摊销

google-apps-script -\n在Google Apps脚本Browser.msgBox中不起作用

mysql - 在Google Apps脚本中执行存储过程