javascript - 2 个阵列改变而不是 1 个

标签 javascript

我正在制作一款包含 2 个数组的游戏,但当我不希望它发生变化时,其中一个数组发生了变化。来自浏览器控制台的示例:

A=[1,2,3,4,5]
B=[6,7,8,9,10]
A=B
A.push(11)
A =[6, 7, 8, 9, 10, 11]
B =[6, 7, 8, 9, 10, 11]

A 很好,但有没有办法让 B 保持 [6,7,8,9,10]

最佳答案

使用扩展语法 A=[...B];B 复制到 A。当你执行 A=B 时,你实际上是将 B 的引用设置为 A 所以对 A 的任何更改导致 B 发生变化,反之亦然。

var A=[1,2,3,4,5];
var B=[6,7,8,9,10];
A=[...B];
A.push(11);
console.log(A);
console.log(B);

关于javascript - 2 个阵列改变而不是 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50810416/

相关文章:

javascript - Dnd头像: how to get wysiwyg-preview on dragOver?

php - onclick 选项卡时发生不同的事件

javascript - 在 meteor 中导入 svg 文件

javascript - 如何使用 javascript 在 Canvas 上制作可调整大小的文本

javascript - 如何将 PHP 文件中的多个值回显到 Javascript Ajax 调用?

javascript - 照片网格 - 多选/突出显示?切换?

javascript - 捕获提交事件,验证,如果可以的话。继续提交表格

javascript - Mozilla 文档/ECMAScript 规范中的语法

javascript - 全页.js : Sections have higher height than content

javascript - jQuery UI - 在外部单击时关闭对话框