当前位置:   article > 正文

js 使用 = 直接赋值数组,修改新数组时会把原数组修改掉的问题解决(深拷贝)_js 数组赋值另一个数组 为什么修改会影响原数组 深拷贝

js 数组赋值另一个数组 为什么修改会影响原数组 深拷贝

使用 = 直接赋值数组,修改新数组时会把原数组修改掉:

  1. let oldArr = [
  2. {group: 1, id: 2, name: "aa"},
  3. {group: 2, id: 1, name: "bb"}];
  4. let newArr2 = oldArr;
  5. for (let i = 0; i < newArr2.length; i++) {
  6. if (newArr2[i].id == 1) {
  7. newArr2[i].name = "new";
  8. break;
  9. }
  10. }
  11. console.log(oldArr);
  12. console.log(newArr2);

 

使用对象深拷贝,修改数组不影响原数组:

  1. let oldArr = [
  2. {group: 1, id: 2, name: "aa"},
  3. {group: 2, id: 1, name: "bb"}];
  4. let newArr2 = JSON.parse(JSON.stringify(oldArr)); //对象深拷贝,修改不影响之前的
  5. for (let i = 0; i < newArr2.length; i++) {
  6. if (newArr2[i].id == 1) {
  7. newArr2[i].name = "new";
  8. break;
  9. }
  10. }
  11. console.log(oldArr);
  12. console.log(newArr2);

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/915168
推荐阅读
相关标签
  

闽ICP备14008679号