配列のコピー

配列のコピー。また同じ過ちをしてしまったので、備忘録

とりあえず実例

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を使って配列をコピーすることで、思ったとおりの操作ができるようになりました(ふー、よかったよかった)。