Javascript 如何将数组按值分配给另一个变量

Javascript 如何将数组按值分配给另一个变量,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有一个数组channel\u 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\u chunk[0]也变为test

我有一个数组
channel\u 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\u chunk[0]
也变为
test

所以我认为在赋值时它是通过引用传递的,我想通过值将
channel\u chunk
赋值给
new\u arr


我知道
jQuery.extend
会有帮助。但是在这种情况下我使用的是纯JavaScript,所以我不能使用它,是否有一个内置函数可以在JavaScript中实现这一点。请帮助………

您需要创建一个新阵列。一种简单的方法是不带参数的concat:

var new_arr = channel_chunk.concat();
现在修改新数组将不会对通道块产生影响。

获取数组(部分)的(浅)副本的“官方”方法是:

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

var new_arr = channel_chunk.slice(0);