如何通过值将数组分配给另一个变量javascript

时间:2012-05-28 07:12:44

标签: javascript jquery arrays object

我有一个数组channel_chunk

var channel = "global/private/user/updates/user_following/publisher_id/subcriber_id";

channel_chunk = channel.split("/"),

并将此数组分配给另一个变量

var new_arr =  channel_chunk ;

问题是

当我改变了

new_arr[0]  = "test";

channel_chunk[0]也变为test

所以我认为我在分配时通过引用传递,我想按channel_chunk的值分配new_arr

我知道jQuery.extend会有所帮助。但我在这种情况下使用的是纯JavaScript,所以我无法使用它,是否有内置函数在JavaScript中执行此操作。请帮助............

2 个答案:

答案 0 :(得分:3)

采用(部分)数组的(浅)副本的“官方”方式是.slice()

var new_arr = channel_chunk.slice(0);

[它被称为“浅”副本,因为其中的任何对象或数组仍将引用原件,但数组本身是一个全新的副本。因为你正在使用不会影响你的字符串原语。 ]

答案 1 :(得分:0)

您需要创建一个新数组。一个简单的方法是简单地连接没有args:

var new_arr = channel_chunk.concat();

现在修改new_arr对channel_chunk没有任何影响。