Javascript - 通过引用传递变量问题

标签 javascript operators pass-by-reference

我正在尝试制作 JavaScript 数组的副本并修改“副本”而不修改原始变量,任何人都可以解释我做错了什么..

例如

var array1 = [2, 5];
var array2 = '';

array2 = array1;
array2.pop();
console.log(array1);
console.log(array2);

// both output the same, however I want it to show array1 with 1 single item

我正在尝试使 array2 仅包含数组中的一项,而 array1 将包含数组中的两项。你知道我做错了什么吗?

最佳答案

为了创建数组的副本而不是分配引用值,您可以使用 .slice方法。

array2 = array1.slice(0);

Slice 返回给定数组从给定索引到(可选结束索引)的(浅)副本

关于Javascript - 通过引用传递变量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20325518/

相关文章:

java - 为什么在比较 Java 中的整数包装器时 128==128 为假但 127==127 为真?

javascript - 在 Chrome 的 URL 栏中使用 Javascript 设置文本框的值只是将值写入屏幕

javascript - 可选择在空格后匹配

c++ - 运算符 == 不存在于 std::vector 中?

Java:数组并在添加值时使用++运算符

c++ - 是否可以将 "fill"函数参数(默认为 null)与对象一起使用?

javascript - 属性未更新

javascript - 谷歌自动完成 setComponentRestrictions

haskell - 在 Haskell 中编写数学表达式的惯用方式

objective-c - 在 Objective-C 中按值或按引用传递参数