Javascript 从数组设置Google电子表格单元格值,但所有值都相同

Javascript 从数组设置Google电子表格单元格值,但所有值都相同,javascript,arrays,date,google-apps-script,google-sheets,Javascript,Arrays,Date,Google Apps Script,Google Sheets,我正在使用GoogleApps脚本尝试获取一组日期,并将它们粘贴到Google电子表格的单元格中 我能够将数据放入一个数组中,当我使用记录器时,我可以看到日期在增加,就像array.length一样 当我使用.setValues将数组的内容粘贴到电子表格中时,我在每个单元格中得到相同的值。(代码中的oldestDate只是前面设置的另一个日期变量。它是使用新日期(日期字符串)构造函数创建的,因此是有效日期 var today = new Date(); var testDate = ne

我正在使用GoogleApps脚本尝试获取一组日期,并将它们粘贴到Google电子表格的单元格中

我能够将数据放入一个数组中,当我使用记录器时,我可以看到日期在增加,就像array.length一样

当我使用.setValues将数组的内容粘贴到电子表格中时,我在每个单元格中得到相同的值。(代码中的oldestDate只是前面设置的另一个日期变量。它是使用
新日期(日期字符串)
构造函数创建的,因此是有效日期

  var today = new Date();
  var testDate = new Date(oldestDate);
  Logger.log(oldestDate);
  Logger.log(testDate);
  Logger.log("Loop Starts");
  var storage = [];
  var cols=0
  while (Date.parse(testDate) < Date.parse(today))
  {
    storage.push(testDate);
    Logger.log(testDate); //This is giving the same output as vvvvv
    Logger.log(storage[cols]); //This is giving the same output as ^^^^^
    Logger.log("Storage Length: "+storage.length); //This is incrementing
    testDate.setDate(testDate.getDate() +1);
    cols++;
  }

  var expensesDump = expenses.getSheetByName("Dump");
  expensesDump.getRange(1, 1, 1, cols).setValues([storage]); //This is populating every cell with "27/05/2013"
var today=新日期();
var testDate=新日期(旧日期);
Logger.log(最旧日期);
Logger.log(testDate);
Logger.log(“循环启动”);
var存储=[];
var cols=0
while(Date.parse(testDate)
将对象(在本例中为日期对象)推入数组时,就是将引用推入该对象:

该链接中的第二个答案表明,如果一个新对象被分配给push()引用的变量,那么它与以前的push()调用“断开连接”。因此,解决方案可能是(在while循环中):

testDate = new Date(testDate);
testDate.setDate(testDate.getDate()+1);