2016-10-19 4 views
-1

新しい値を変数に設定しているときに奇妙なバグに気づいた。残念ながら、Valueは別の変数にもコピーされています。あなたはここで何が起こっているのか考えていますか? デバッグ中の画面ショットです。 1つは新しい値を設定する直前で、もう1つは直後に設定します。値が2つの異なる変数にどのように自動的にコピーされたかを見ることができます。ここでgoogle script assining variableのバグ

Image 1

Image 2

あなたはそれを自分でチェックしたい場合はファイルです:

をdocs.google.com/spreadsheets/d/17L7KDVteaYUuBE8v5jRRUGBBHa5_Dg6dH0eQ8oDTde4/edit?usp=sharing

ありがとうございます事前に

答えて

1

これはバグではありません。
変数を配列に割り当てることは、JavaScriptやその他のプログラミング言語のリファレンス(メモリ位置)によって行われます。

a=[1]; 
b=a; 
b[0]=2; 

aこの簡単な例を考えてみましょうあなたは

c=a.slice(); 
c[0]=3; 

aスライスを使用して例えばコピーを作成する必要がありますコピーは今も[2]cなり割り当てるには、今[2]

です[3]となります。

ので

red = temp[i].slice(); 
+0

本当にありがとうございました友人を試してみてください:) – Slavi