配列の中身のコピーは.slice()を使えば出来る。 しかし、2次元配列など、配列の中身が配列の時は、参照がコピーされてしまう。 例えば、 var array = new Array(3); var copied = new Array(3); for(i=0;i<3;i++){ array[i] = new Array(3); copied[i] = new Array(3); for(j=0;j<3;j++){ array[i][j] = 0; copied[i][j] = 0; } } copied = array.slice(); console.log("before array:",array[0][0]); copied[0][0] = 1; console.log("after array:",array[0][0]); console.log("before copied:",copied[0][0]); array[0][0] = 2; console.log("after copied:",copied[0][0]); というようにすると、一方の配列を書き換えるともう一方も変わってしまう。(と言うより同じものを参照している) before array: 0 after array: 1 before copied: 1 after copied: 2 ので、 var array = new Array(3); var copied = new Array(3); for(i=0;i<3;i++){ array[i] = new Array(3); copied[i] = new Array(3); for(j=0;j<3;j++){ array[i][j] = 0; copied[i][j] = 0; } } for(i=0;i<3;i++){ copied[i] = array[i].slice(); } console.log("before array:...