从数组设置Google电子表格单元格值,但所有值都是相同的
Setting Google Spreadsheet cell values from array, but all values are the same
我正在使用Google Apps Script来尝试获取日期数组并将它们粘贴到Google电子表格上的单元格中。
我可以将数据放入数组中,当我使用记录器时,我可以看到日期在递增,array.length也在递增。
当我使用. setvalues将数组的内容粘贴到电子表格中时,我在每个单元格中获得相同的值。(代码中的oldestDate只是前面设置的另一个日期变量。它是使用new Date(date string)
构造函数创建的,因此是一个有效的日期。
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"
当您将一个对象(在本例中是一个日期对象)压入数组时,您正在压入对该对象的引用:
对象推入数组在javascript深或浅复制?
该链接中的第二个答案表明,如果一个新对象被分配给由push()引用的变量,那么它将与先前的push()调用"断开连接"。因此,解决方案可能是(在while循环中):
testDate = new Date(testDate);
testDate.setDate(testDate.getDate()+1);
相关文章:
- 如何在不使用jQuery的情况下设置数组以获取单选按钮值
- JavaScript-设置数组中包含变量的数组
- 用户输入设置数组长度
- jQuery/JavaScript按属性设置数组
- 在 JavaScript 中获取和设置数组内对象的值
- 无法设置数组中日期的格式
- 注册客户端脚本不适用于设置数组值
- 根据特定日期设置数组
- IMacros 检查和设置数组元素
- 通过索引设置数组对象的值会设置所有数组项
- 如何使用jQuery/javascript在下拉列表(多选)中设置数组对象的值
- MeanJS:在Angular中设置数组中的Mongoose对象引用
- 如何使用CSS在JavaScript中设置数组中“td”的高度
- 如何从新行设置数组的每个元素
- 根据单独数组中的值设置数组的值[Angular,forEach]
- 使用_.find设置数组内对象的属性值
- 以编程方式在聚合物中设置数组项的属性值
- Wp编辑器设置数组自动保存功能
- 如何设置数组的属性,以便通过json_encode获得所需的结果
- 如何在Javascript中设置数组中的JSON路径