首页 > 解决方案 > Javascript 数组更改为新数组反映在用于创建它的数组中

问题描述

我将一个数组(我们称之为 originalArr)传递给一个函数,然后我将它分配给一个新变量(我们称之为 copyArr),当我更改 copyArr 的内容时,originalArr 的内容也更改了示例代码

justAFunction([1,2,3,4,5,6,7,8]);   
 function justAFunction(originalArr){
      let copyArr = originalArr;
      copyArr.pop();
      copyArr.pop();
      copyArr.pop();
    
    
      
      console.log(originalArr);
    
      }
    output = [ 1, 2, 3, 4, 5 ]

有人可以解释为什么会这样吗

标签: javascriptarrayspointers

解决方案


因为 JS 中的数组是引用值,所以当你尝试使用 = 复制它时,它只会复制对原始数组的引用,而不是数组的值。要创建数组的真实副本,您需要将数组的值复制到新值变量下。

https://www.samanthaming.com/tidbits/35-es6-way-to-clone-an-array/


推荐阅读