配列のコピー。また同じ過ちをしてしまったので、備忘録
とりあえず実例
var a = 1; var b = a; a = 300;
この結果、b は 1。想定どおり。
var array_1 = [1,2,3]; var array_2 = array_1; array_1.push(500);
この結果、array_2 は [1,2,3] ではない。array_2 は [1,3,3,500]。array_1 で配列が操作されると array_2も同様に変化する(←これに気づけなかった・・・)。
var array_1 = [1,2,3]; var array_2 = array_1; array_1 = [4,5,6];
ちなみに、この結果、array_2 は [4,5,6] ではない。array_2 は [1,2,3]。array_1 を差し替えた段階で array_2はarray_1とは別になる。
配列のコピー
var array_1 = [1,2,3]; var array_2 = [].concat(array_1); array_1.push(500);
この結果、array_2 は [1,2,3] 。concatを使って配列をコピーすることで、思ったとおりの操作ができるようになりました(ふー、よかったよかった)。