Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 数组在GAS中的变量问题_Google Apps Script - Fatal编程技术网

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()