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

how to assign an array by value to another variable javascript

本文关键字:另一个 变量 JavaScript 分配 何按值 数组      更新时间:2023-09-26

我有一个数组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中是否有内置函数来做到这一点。 请帮忙...

获取

数组(部分)的(浅)副本的"官方"方法是.slice()

var new_arr = channel_chunk.slice(0);

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

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

var new_arr = channel_chunk.concat();

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