Javascript Google脚本从单元格中填充值及其位置的数组

Javascript Google脚本从单元格中填充值及其位置的数组,javascript,arrays,google-apps-script,spreadsheet,Javascript,Arrays,Google Apps Script,Spreadsheet,我正在使用谷歌脚本操作电子表格中的值。以下是我得到的: var Habits = sheet.getRange("C5:D100"); var HABITS = [Habits.getCell(1, 2).getValue(), Habits.getCell(2, 2).getValue(), Habits.getCell(3, 2).getValue(), Habits.getCell(4, 2).getValue(),

我正在使用谷歌脚本操作电子表格中的值。以下是我得到的:

var Habits = sheet.getRange("C5:D100");

var HABITS = [Habits.getCell(1, 2).getValue(),
          Habits.getCell(2, 2).getValue(),
          Habits.getCell(3, 2).getValue(),
          Habits.getCell(4, 2).getValue(),
          Habits.getCell(5, 2).getValue(),
          Habits.getCell(6, 2).getValue(),
          Habits.getCell(7, 2).getValue(),
          Habits.getCell(8, 2).getValue(),
          Habits.getCell(9, 2).getValue(),
          Habits.getCell(10, 2).getValue(),
          Habits.getCell(11, 2).getValue(),
          Habits.getCell(12, 2).getValue(),
          Habits.getCell(13, 2).getValue(),
          Habits.getCell(14, 2).getValue(),
          Habits.getCell(15, 2).getValue(),
          ];
所以你可能知道我在做什么。尝试以数组形式获取一系列单元格中的所有值。但是值的范围可能会波动,我不想对脚本进行更改。这里有一个我尝试过的解决方案,但我无法开始工作(但它没有定义习惯):

var=sheet.getRange(“C5:D100”);
变异习惯
for(var i=0;i
第二个问题是,当我得到这些值时,我需要将新值写回它们的位置,因此我需要记录每个值在类似数组中的位置

以下是我试图更改的值(这将替换“已检查的习惯”并使其成为“未检查的”aka-将电子表格中的X替换为零),但对于未定义的习惯(因此没有长度),它不起作用:

for (var i = 0; i < HABITS.length; i++) {
  if (HABITS[i] == "X"){
    Favorloc.setValue(Favorloc.getValue() + 1);
    Habits[i].setValue();
  }
}
for(var i=0;i

有什么建议吗?(另外,如果您需要查看我的完整脚本或电子表格以更好地了解我正在做什么,请告诉我)

始终值得深入研究:)

然后你可以反过来做同样的事情,确保你的数组和你想要分配给它的区域是完全相同的形状——我经常这样做

for (var i = 0; i < HABITS.length; i++) {
  if (HABITS[i] == "X"){
    Favorloc.setValue(Favorloc.getValue() + 1);
    Habits[i].setValue();
  }
}
var range = sheet.getDataRange(); // REFERENCE THE ENTIRE AREA CONTAINING DATA ON THIS SHEET
var values = range.getValues(); // RETURN THE DATA FROM THE RANGE INTO AN ARRAY