Google脚本意外更改了我的数组中的值

时间:2017-12-25 07:35:00

标签: javascript arrays multidimensional-array google-apps-script

我遇到了谷歌脚本代码的一部分,其中一个数组元素意外更改。对我来说这看起来像个错误,但是我想从这里听到它是否真的是或者只是我忽略了我的编码错误。当然,我也希望在任何情况下都能找到解决方案。

这是代码的一部分。

  if (chkIn) {arr[1] = importData[i][1]+'2';
             } else {

               Logger.log((i)+'   '+importData[i][1]);
               Logger.log((i+1)+'   '+importData[i+1][1]);
               Logger.log((i+2)+'   '+importData[i+2][1]);
               Logger.log(arr[1]);

               arr[1] = importData[i][1]+'1';

               Logger.log('---------------------------------------------------');
               Logger.log((i)+'   '+importData[i][1]);
               Logger.log((i+1)+'   '+importData[i+1][1]);
               Logger.log((i+2)+'   '+importData[i+2][1]);
               Logger.log(arr[1]);
             };

(if语句在这里似乎并不重要,但我将其包括在内以防万一。)

这是输出。

2573   2017122103
2574   20171221041
2575   20171221042
20171221042
---------------------------------------------------
2573   2017122103
2574   20171221041
2575   20171221031
20171221031

我真的不知道importData[i+2][1]如何将其值更改为arr[1](2575之后的数字)。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

可能这是因为在你的情况下:

arr === importData[i+2]

因此,当您更改arr[1]时,您也更改了importData[i+2][1]