使用javascript中的数组副本

使用javascript中的数组副本,javascript,arrays,copy,Javascript,Arrays,Copy,从数组生成的变量何时充当指向数组的指针,何时充当数组的副本 例如,如果我有一个名为Array1 a1=Array1; 是数组的副本或指针 如果我修改a1它也会修改Array1。所谓修改,我的意思是更改一个值,将某些内容放入数组,排序,或者以任何其他方式修改数组 谢谢,javascript中的变量包含对数组的引用 如果使用arr2=arr1复制变量值,则将引用复制到同一数组。因此,对arr2的任何更改都是对arr1的更改 如果希望另一个变量保存对副本的引用,以便在不更改第一个数组的情况

从数组生成的变量何时充当指向数组的指针,何时充当数组的副本

例如,如果我有一个名为
Array1

a1=Array1;     
是数组的副本或指针

如果我修改
a1
它也会修改
Array1
。所谓修改,我的意思是更改一个值,将某些内容放入数组,排序,或者以任何其他方式修改数组


谢谢,

javascript中的变量包含对数组的引用

如果使用
arr2=arr1
复制变量值,则将引用复制到同一数组。因此,对
arr2
的任何更改都是对
arr1
的更改

如果希望另一个变量保存对副本的引用,以便在不更改第一个数组的情况下更改第二个数组,请使用:


JavaScript中的变量赋值从不为(非a的所有内容)创建副本


x=[1,2,3];y=x;y[0]=7;console.log(x)
将输出
7,2,3
。JS中的数组是对象,当您通过
newobj=origobj
复制对象时,您只是在创建一个引用。您需要克隆数组对象以创建真正独立的副本。我不记得确切的原因,但我认为您希望它是
arr1.slice(0)
您可能还需要注意
.slice()
只创建数组的浅层副本。
var arr2 = arr1.slice();