我真的找不到这个问题的好标题......抱歉: - )
它应该是这样的: 关于真正困扰我的事情的简单问题:
在这个(非常)基本代码中我想保持变量headers
完好无损...它为什么以及如何在修改{时获得一种简单的方法来保持该值不变{1}}?
工作表是一个简单的单元格行,在连续的单元格中包含a,b,c,d,e,f,g,h,i,j。
otherVersion
记录器结果:
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 ?
}
我需要这个标题的'正常'和'移位版本',这就是为什么我使用2个不同的var名称。为什么这种奇怪的互动?这背后的逻辑是什么?
答案 0 :(得分:1)
在您的代码中,data[0]
是一个数组。执行var otherVersion = data[0];
不会创建副本,而是在同一副本上运行。改为使用slice()函数。
var otherVersion = data[0].slice(0);