Javascript-修改重复的数组而不修改原始数组

Javascript-修改重复的数组而不修改原始数组,javascript,Javascript,我肯定这是件蠢事,但我解决不了 如果我这样做: var arr = [1, 2, 3, "up"]; var duplicate = arr; duplicate[3] = "down"; console.log(arr[3]); //"down" console.log(duplicate[3]); //"down" 那么为什么原始数组也被修改了呢?这与它们指向同一个数组有关吗 如何仅修改副本?您需要克隆您的副本阵列。。。您可以使用slice()方法执行此操作: var arr = [1,

我肯定这是件蠢事,但我解决不了

如果我这样做:

var arr = [1, 2, 3, "up"];
var duplicate = arr;
duplicate[3] = "down";
console.log(arr[3]); //"down"
console.log(duplicate[3]); //"down"
那么为什么原始数组也被修改了呢?这与它们指向同一个数组有关吗


如何仅修改副本?

您需要克隆您的
副本
阵列。。。您可以使用
slice()
方法执行此操作:

var arr = [1, 2, 3, "up"];
var duplicate = arr.slice(0);
duplicate[3] = "down";
console.log(arr[3]); //"up"
console.log(duplicate[3]); //"down"

您需要克隆
重复的
阵列。。。您可以使用
slice()
方法执行此操作:

var arr = [1, 2, 3, "up"];
var duplicate = arr.slice(0);
duplicate[3] = "down";
console.log(arr[3]); //"up"
console.log(duplicate[3]); //"down"

修改了原始数组,因为使用
var duplicate=arr
只意味着
duplicate
的值现在等于
arr
的值。更改其中一个将更改数组的值


至于复制数组及其内容,这篇文章有一个完整的总结

原始数组被修改,因为使用
var duplicate=arr
仅仅意味着
duplicate
的值现在等于
arr
的值。更改其中一个将更改数组的值


至于复制数组及其内容,这篇文章有一个完整的总结

好吧,它看起来是我的复制品,不是复制品,但我的问题是复制品!对不起,如果你不是英语母语,有时甚至很难找到用英语表达问题的方法,所以即使我寻找,我也没有找到类似的问题。看起来我的问题是重复的,不是重复的,但我的问题是重复的!对不起,如果你不是英语母语,有时甚至很难找到用英语表达问题的方法,所以即使我在寻找,我也没有找到类似的问题。