Javascript数组值自动改变

标签 javascript jquery

我在使用 javascript 时遇到了一个特殊问题。我有一个临时变量,在加载页面时在其中存储了一个值。然后我必须对某些事件执行一些数据过滤,因此我将其分配给另一个变量并执行过滤,如下所示:

var myVar = tempVar;

myVar 是一个新变量,最初 tempvar 有两个数组元素。过滤后,我会将值分配给 myVar。现在奇怪的事情发生了。当 myVar 值发生变化时,tempVar 值也会自动发生变化。有谁知道为什么会发生这种情况?如果是这样,你能告诉我如何将变量值分配给另一个变量并在不更改变量值的情况下执行操作吗?

最佳答案

这是因为您正在新变量中创建对数组的引用,而不是复制它。因此,myVartempVar 都指向同一个变量。

要克隆数组,请使用 slice(0):

var myVar = tempVar.slice(0);

Working example

关于Javascript数组值自动改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008636/

相关文章:

jquery - 同步jquery $.ajax而不锁定IE?

php - GET后刷新页面上的几个div

javascript - 使用 nodemailer 发送邮件

javascript - onMOuseOver onMouseOut 无法嵌入 php

java - 使用 `>>` 之前检查模块的替代方法?

javascript - 如何根据循环内的特定条件使用 Array.map 迭代停止索引计数递增?

javascript - 访问 JSON 数据 NativeScript

jQuery Mobile 多页面模板缓存

javascript - 从 Controller 中选择选择框选项

php - 即使 post 请求完成后,Firefox 仍显示等待光标和 "loading.."