是否有任何机制来锁定javascript数组自动更新

时间:2013-09-06 10:33:14

标签: javascript arrays

我正在开发一个比较两个数组的javascript应用程序(第二个数组是从主数组生成的,删除了引用)。应用程序的核心思想是将当前数组(主要)与次要(上次保存状态)进行比较,以识别更改并相应地采取相应措施。我面临的问题有时是主要和次要数组的价值变得相同,我正在玩一个巨大的javascript来管理html画布。这就是为什么我不发布代码......

让我解释一下这个问题: 阵列X - >主数组,获取鼠标移动的更新 阵列Y - >上次保存的状态,仅在鼠标单击时更新

一旦鼠标点击发生,阵列将是相同的,在鼠标移动'X'将更新而不是'Y'。在mouseup动作中,'X'与'Y'进行比较以检查所有值是否相同,一旦mousup出现在屏幕的右上角,值就会改变;那时'Y'得到更新。

有时是有效的;有时它不..我想知道为什么!

我正在考虑将“Y”锁定在编辑中的解决方案,即锁定。

2 个答案:

答案 0 :(得分:0)

实际上你的问题不在于数组本身。对象(数组项)通过引用复制到另一个数组。你需要克隆它们。 javascript中没有内置的方法也没有运算符,但你可以随时使用google即用型解决方案。

如果你有原始数组,并希望保护你的代码不会偶尔发生变化,那么只要它是可用的,你就可以使用Object.freeze(所有浏览器都不支持)。调试也可能很有用,但freeze可以帮助您识别代码中的确切位置,执行更改的位置不应该。

对不起,如果我没有回答你的问题 - 对我来说这看起来有点模糊。

答案 1 :(得分:0)

我认为真正的问题是当你不期待它时会发生Y的更新,你需要调试javascript来找出原因。在更新代码上放置一个断点,看看它何时不应该被调用,然后你可以解决问题。

如果您处理大量数据,可能会发生事件延迟而且没有发生。