javascript - 按值复制数组

标签 javascript arrays pass-by-value

将 JavaScript 中的数组复制到另一个数组时:

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']

我意识到 arr2 指的是与 arr1 相同的数组,而不是一个新的独立数组。如何复制数组以获得两个独立的数组?

最佳答案

使用这个:

let oldArray = [1, 2, 3, 4, 5];

let newArray = oldArray.slice();

console.log({newArray});

基本上,slice()操作克隆数组并返回对新数组的引用。

另请注意:

对于引用、字符串和数字(​​而不是实际对象),slice() 将对象引用复制到新数组中。原始数组和新数组都引用同一个对象。如果引用的对象发生更改,则更改对新数组和原始数组都是可见的。

字符串和数字等原语是不可变的,因此无法更改字符串或数字。

关于javascript - 按值复制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264880/

相关文章:

c - 我对 C 中按值复制/按引用复制的理解是否正确?

c++ - 在 C++ 中通过引用传递 1d 和 2d 数组

c# - 参数真的按值传递吗?

javascript - 控制台中无效的左手分配错误

javascript - 等待所有多个异步ajax调用完成

java - 在数组中按姓氏搜索

arrays - 对包含可以具有 3 个值的对象的数组进行排序

javascript - Strapi 自定义身份验证 Controller

javascript - 使用 AJAX 将表单输入发送到 PHP

c++ - 使用数组和某些方法来 memcpy struct 是否安全?