1

我有一个数组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 中执行此操作。请帮忙............

4

2 回答 2

3

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

var new_arr = channel_chunk.slice(0);

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

于 2012-05-28T07:17:48.713 回答
0

您将需要创建一个新数组。一个简单的方法就是不带 args 的 concat:

var new_arr = channel_chunk.concat();

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

于 2012-05-28T07:16:51.897 回答