配列の中身のコピーは.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:...