我有一个数组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中执行此操作。请帮助............
答案 0 :(得分:3)
采用(部分)数组的(浅)副本的“官方”方式是.slice()
:
var new_arr = channel_chunk.slice(0);
[它被称为“浅”副本,因为其中的任何对象或数组仍将引用原件,但数组本身是一个全新的副本。因为你正在使用不会影响你的字符串原语。 ]
答案 1 :(得分:0)
您需要创建一个新数组。一个简单的方法是简单地连接没有args:
var new_arr = channel_chunk.concat();
现在修改new_arr对channel_chunk没有任何影响。