如何在javascript中保留数组?

pop*_*850 1 javascript arrays retain

这里有一些代码有两个数组(np和op),一个是另一个的副本

但是,当我修改副本时,原件也被修改了!看一看:

<script type="text/javascript">
var op=new Array(0, 0);
var np=op;
np[1]=2;
document.write(op+"<br>")
document.write(np)
</script>
Run Code Online (Sandbox Code Playgroud)

有没有办法保留原件并修改副本?

Dav*_*unt 7

一些内置的Array函数实际上会为您创建一个副本.一个是切片.

例如:

var op=new Array(0, 0);
var np= op.slice(0);
np[1]=2;
document.write(op+"<br>")
document.write(np)
Run Code Online (Sandbox Code Playgroud)

参考http://my.opera.com/GreyWyvern/blog/show.dml/1725165


Mar*_*c W 5

你从未制作过该阵列的副本.您只需将数组分配给另一个变量.这不会在Javascript中复制.在您的示例中,只有一个包含两个变量的数组,您可以通过它们访问它.没有内置的方法来复制Javascript中的数组,因此您需要编写自己的函数来执行此操作.

请看一下这个StackOverflow问题,以获得有关如何实际复制数组中元素的提示.