重複の可能性:
JavaScript オブジェクトを複製する最も効率的な方法は何ですか? (これらのほとんどは外部ライブラリを使用するか、完全には機能しません。以下のブログ投稿は、より優れたリソースです)
これは、scribd 開発者チャレンジのコンテキストにあります。彼らの API を使用すると、get_board を呼び出してボードを取得できます。しかし、私がやりたいのは、set_field で変更したそのボードのコピーを用意することです。しかし、それを行うと、独自の内部ボード オブジェクトが混乱し、コードが壊れます。だから、私が必要なのは(私が思うに) get_board を呼び出してから、オブジェクトへのポインターを壊して、自分のボードを変更することです。以下で mygame.board を使用してこれを試みましたが、それでも同じエラーが発生します。
エラーは次のとおりです。The type of an object is incompatible with the expected type of the parameter associated to the object
function new_game()
{
var board = get_board();
var mygame={board: board}
mygame.board = set_field(min_max_store, mygame.board)
}
function set_field(min_max_store, board)
{
//loop x
//loop y
board[x][y] = -1;
return board
}
ポインターがオブジェクトを指すのを止めて、自分のオブジェクトを変更するにはどうすればよいですか?
編集:
これは 2 次元配列で機能します。
var one = [[1,2],[2,3],[3,4],[4,5]]
var two = one.slice(0)
for(var x = 0; x <= one.length - 1; x++)
{
two[x] = one[x].slice(0)
}
one[1][1] = 10
console.log(one)
console.log(two)
戻り値:
[[1, 2], [2, 10], [3, 4], [4, 5]]
[[1, 2], [2, 3], [3, 4], [4, 5]]