1

对于一个学校项目,我需要用 C 制作游戏。但是,由于我更喜欢​​ javascript + js 可以提供简单的可视化实现,我决定在 c 中用 js 编写我的游戏,以使我的结构正确. 这就是为什么我的代码如此奇怪地循环。

现在,问题是我有一个switches[]按下开关的数组(1/0)。我想将此与另一个数组进行比较, oldArray[]. 现在,比较时,出于某种原因,它们总是相同的,我只是找不到。这是jsfiddle.net上的完整示例。问题出在memory()功能上。此行无法正常工作:

if (switches[i] == 1 && oldArray[i] == 0 && guessedArray[i] == 8 && i != oldtouch) {...}

因为switches[]似乎总是等于oldArray[]

在小提琴中,Start单击某些按钮后按并检查控制台输出。

4

1 回答 1

2

它们是相等的,因为在oldArray = switches执行赋值语句时,两个变量都指向内存中的同一个底层对象。

要将所有值从一个数组复制到另一个数组,而不让它们指向同一个对象,请执行oldArray = switches.slice(0)

进一步讨论请参见:Copying array by value in JavaScript

于 2013-04-27T01:18:19.690 回答