Google apps script 数组在GAS中的变量问题
我真的找不到这个问题的好标题。。。对不起:-) 应该是这样的: 一个关于真正困扰我的事情的简单问题: 在这段(非常)基本的代码中,我希望保持变量Google apps script 数组在GAS中的变量问题,google-apps-script,Google Apps Script,我真的找不到这个问题的好标题。。。对不起:-) 应该是这样的: 一个关于真正困扰我的事情的简单问题: 在这段(非常)基本的代码中,我希望保持变量headers不变,并且它不会。。。当我修改otherVersion时,为什么以及如何获得保持该值不变的简单方法 该表是一个简单的单元格行,包含连续单元格中的a、b、c、d、e、f、g、h、i、j function myFunction() { var sh = SpreadsheetApp.getActive(); var data = sh.
headers
不变,并且它不会。。。当我修改otherVersion
时,为什么以及如何获得保持该值不变的简单方法
该表是一个简单的单元格行,包含连续单元格中的a、b、c、d、e、f、g、h、i、j
function myFunction() {
var sh = SpreadsheetApp.getActive();
var data = sh.getDataRange().getValues();
var headers = data[0];
Logger.log(headers);
var otherVersion = data[0];
var x = otherVersion.shift();
Logger.log(x)
Logger.log(headers);// why has it changed ?
}
记录器结果:
[a, b, c, d, e, f, g, h, i, j]
a
[b, c, d, e, f, g, h, i, j]
我需要这个标题的“正常”和“移位版本”,这就是为什么我使用两个不同的变量名。为什么会有这种奇怪的互动?这背后的逻辑是什么?在代码中,
数据[0]
是一个数组。执行var otherVersion=data[0]代码>不创建副本,而是在同一副本上工作。改为使用slice()函数
var otherVersion = data[0].slice(0);
感谢您的解决方案,但我仍然不清楚:当我提到它时,它说拼接用于添加/删除阵列的一部分,需要第二个参数来告诉要删除多少项。。。但在这里,我不删除任何内容(在本例中,这对我来说是一件好事:),您只使用1个参数。所以在提到的文件中肯定少了一些东西。。。你能解释一下吗?提前感谢。Serge、splice()和slice()是不同的函数:)有关slice()的更多信息,请参阅。您所指的函数是带有“p”的splice()