可能重复:
克隆 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
}
如何阻止指针指向他们的对象并让我自己修改?
编辑:
这将适用于二维数组。
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]]