Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的循环将所有值更改为最后一个元素_Javascript - Fatal编程技术网

Javascript 我的循环将所有值更改为最后一个元素

Javascript 我的循环将所有值更改为最后一个元素,javascript,Javascript,为什么我的for循环将数组的所有值更改为同一个值 for (var i = 0; i < arr.length; i++) { arr[i] = otherarr[i]; } for(变量i=0;i

为什么我的for循环将数组的所有值更改为同一个值

for (var i = 0; i < arr.length; i++) {
    arr[i] = otherarr[i];
}
for(变量i=0;i
完成后,它会将arr中的所有值更改为otherarr中的最后一个元素。 它们的长度相同。 我是编程新手,有人能帮我吗

我正在做一个骑士之旅,当我按下一个按钮时,我希望它显示一个可能的方式来完成它

var rightmoves = ["e8", "g7", "h5", "f6", "e4", "g3", "h1", "f2", "d1", "b2", "a4", "c3", "d5", "b6", "a8", "c7", "b5", "a7", "c8", "d6", "c4", "a3", "b1", "d2", "f1", "h2", "g4", "e3", "f5", "h6", "g8", "e7", "c6", "d8", "b7", "a5", "b3", "a1", "c2", "d4", "f3", "e1", "g2", "h4", "g6", "h8", "f7", "g5", "h7", "f8", "e6", "f4", "h3", "g1", "e2", "c1", "a2", "b4", "d3", "c5", "a6", "b8", "d7", "e5"];
for (var i = 0; i < rightmoves.length; i++) {
    moves[i] = knight;
    moves[i].row = rightmoves[i].charAt(1);
    console.log(moves[i].row)
}
var rightmoves=[“e8”、“g7”、“h5”、“f6”、“e4”、“g3”、“h1”、“f2”、“d1”、“b2”、“a4”、“c3”、“d5”、“b6”、“a8”、“c7”、“b5”、“a7”、“c8”、“d6”、“c4”、“a3”、“b1”、“d2”、“f1”、“h2”、“g4”、“e3”、“f5”、“h6”、“g8”、“e7”、“c6”、“d8”、“a5”、“b3”、“a1”、“c2”、“d4”、“d4”、“f3”、“e1”、“g2”、“h4”、“h6”、“h8”、“f7”、“h3”、“h3”、“g1”,“e2”、“c1”、“a2”、“b4”、“d3”、“c5”、“a6”、“b8”、“d7”、“e5”];
对于(变量i=0;i
骑士在棋盘上有像行和列这样的属性,并且移动存储它所做的移动。
当我在chrome moves的控制台中查看moves时,它有64个对象,所有这些对象的行值都相同,但控制台日志将该行的所有正确值都放入了。您正在将相同的对象引用推送到数组的每个索引中

尝试通过使用来推送浅层副本,以便在数组的每个索引中都有唯一的对象

for (var i = 0; i < rightmoves.length; i++) {
    moves[i] = Object.assign({},knight);// shallow copy of knight object
    moves[i].row = rightmoves[i].charAt(1);
    console.log(moves[i].row)
}
for(变量i=0;i
您的arr和其他arr中有哪些数据?此代码应该完全按照您的预期执行,因此还有其他错误。是什么让您认为它将
arr
中的所有值设置为
otherarr
中的最后一个?在循环之前和之后发布一些代码以演示完整的错误。是否设置了
arr=otherarr在代码中的某个点?糟糕的调试器也是如此。