gpt4 book ai didi

javascript - 函数正在更改错误的变量值

转载 作者:行者123 更新时间:2023-11-28 17:26:11 27 4
gpt4 key购买 nike

我的功能是这样的:

function sortThis(board) {
tempBoard = board;
var moves = []
for(var i = 0; i < board.length;i++)
{
if(tempBoard[i] == "X")
{
tempBoard[i] = "Z";
moves.push(i);
}
}
return moves;

}

但是当我在第 8 行更改 tempBoard 值时,此代码正在更改 board 变量的值。

为什么???这个bug浪费了我2天的时间。

最佳答案

这不是一个错误。在 JavaScript 中,数组和对象是通过引用复制的,而不是通过值复制的,因此以下行为是正常且预期的:

a = [3];
b = a;
a.push(5);
console.log(b);

tempBoard = board 的情况下,对 tempBoard 的每次修改也会影响 board。如果您想按值复制数组,您可以这样做:

a = [3];
b = [...a];
a.push(5);
console.log(b);

关于javascript - 函数正在更改错误的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com