Javascript 更改一个变量会更改以相同方式定义的所有其他变量

Javascript 更改一个变量会更改以相同方式定义的所有其他变量,javascript,arrays,Javascript,Arrays,我有一个JavaScript代码,它有4个三维数组,每个数组都是500x500x220维(最后一个维中的所有220个值很少都使用)。因为这个维度很大,所以像这样定义一个数组,然后从中定义四个数组要快得多。问题是,当我更改一个数组中的值时,其他数组中的值也会更改。这是我的密码: <script type="text/javascript"> var content = new Array(); var signs = new Array(); var sens = new Array(

我有一个JavaScript代码,它有4个三维数组,每个数组都是500x500x220维(最后一个维中的所有220个值很少都使用)。因为这个维度很大,所以像这样定义一个数组,然后从中定义四个数组要快得多。问题是,当我更改一个数组中的值时,其他数组中的值也会更改。这是我的密码:

<script type="text/javascript">
var content = new Array();
var signs = new Array();
var sens = new Array();
var props = new Array();
var ini = new Array();
for(i = 0; i < 500; i++){
        ini[i] = new Array();
        for(j = 0; j < 500; j++){
                    ini[i][j] = new Array();
        }
}
content = ini;
signs = ini;
sens = ini;
props = ini;
function f(){
        alert(signs[3][3][2]);            //Returns undefined
        content[3][3][2] = 2;
        alert(signs[3][3][2]);            //Returns 2
}
f();
</script>

var content=新数组();
变量符号=新数组();
var sens=新数组();
var props=新数组();
var ini=新数组();
对于(i=0;i<500;i++){
ini[i]=新数组();
对于(j=0;j<500;j++){
ini[i][j]=新数组();
}
}
内容=ini;
符号=ini;
sens=ini;
props=ini;
函数f(){
警报(符号[3][3][2]);//返回未定义
内容[3][3][2]=2;
警告(符号[3][3][2]);//返回2
}
f();
请注意,
f()
函数只应更改
内容
数组,但它也会更改
符号
数组。它为什么会这样做?我该如何绕过它

如果有区别的话,我将使用HTA。

在关于复制嵌套数组的帮助下

您的代码:

content = ini;
signs = ini;
sens = ini;
props = ini;
使数组指向
ini
。这就是为什么任何对
内容[0]
的引用都是对
符号[0]
ini[0]
的引用

使用:

要复制阵列,请执行以下操作:

content = copy(ini);
signs = copy(ini);
sens = copy(ini);
props = copy(ini);
您只需将所有内容设置为与
ini
相同,这意味着所有变量都指向完全相同的数组,因此将其更改为一个位置,即可更改所有位置
content = copy(ini);
signs = copy(ini);
sens = copy(ini);
props = copy(ini);