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);