美文网首页
数组理解——复制数组

数组理解——复制数组

作者: 波_0903 | 来源:发表于2020-10-29 13:02 被阅读0次

比较好的理解连接:https://segmentfault.com/a/1190000018947028

  1. slice
let arr = [{name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}];
        let brr=arr.slice(0,4)
        brr[0].name=2
        console.log(arr,brr);//数组的第一个均改变

说明复制出来的是相同的数组地址

  1. concat
let arr = [{name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}];
        let brr=arr.concat()
        brr[0].name=2
        console.log(arr,brr);//数组的第一个均改变

说明复制出来的是相同的数组地址

  1. for循环方式方式 ,包括map循环,while循环
 let arr = [{name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}];
        // let brr=arr.slice(0,4)
        // let brr=arr.concat()
        let brr=[];
        for (var i = 0; i < arr.length; ++i) {
          brr.push(arr[i]);
      }
        brr[0].name=2
        console.log(arr,brr);//数组的第一个均改变

说明复制出来的是相同的数组地址

  1. 深度拷贝
let arr = [{name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}, {name:'0'}];
       // let brr=arr.slice(0,4)
       // let brr=arr.concat()
       let brr=[];
       brr=JSON.parse(JSON.stringify(arr))
       brr[0].name=2
       console.log(arr,brr);//原数组未改变

说明复制出来的是不同数组

关于JSON.parse(JSON.stringify(obj))实现深拷贝应该注意的坑:https://www.jianshu.com/p/b084dfaad501
深入理解JavaScript中的堆与栈 、浅拷贝与深拷贝:
https://blog.csdn.net/flyingpig2016/article/details/52895620?utm_source=app

相关文章

  • 数组理解——复制数组

    比较好的理解连接:https://segmentfault.com/a/1190000018947028[http...

  • nodejs扩展运算符的应用

    nodejs复制数组,合并数组 1、复制数组: 数组是符合的数据类型,直接复制的话,只是复制了指向底层数据结构的指...

  • es6之复制数组

    es5数组复制 es6数组复制

  • ES6之Array.from()方法

    复制数组如果传的是数组,将把数组复制一份传给新数组,不会影响原数组 转换json对象为数组一个类数组对象必须要有l...

  • java基础2

    print\println\printf的区别 数组 数组的赋值 数组的复制,要避免数组下标越界 数组的扩容数组的...

  • ECMAScript 6学习

    数组的拓展 复制数组 es5: map

  • 关于数组的深复制浅复制

    数组使用copy和MutableCopy复制: 1.不可变数组+copy=浅复制 2.不可变数组+mutableC...

  • JS复制数组

    '='不能复制数组 如果使用=来赋值,不是复制,而是相当于把新数组的指针与指向旧数组所指向的数据,如果新数组变了,...

  • 浅析iOS的浅复制与深复制

    原文:浅析iOS的浅复制与深复制 最近同事问我一个问题:原数组A,进行复制得到数组B,改变数组B的Person元素...

  • ES6 扩展运算符 常用场景

    一、复制数组 image.png 二、数组拼接 二、多个数组拼接 四、字符串转数组

网友评论

      本文标题:数组理解——复制数组

      本文链接:https://www.haomeiwen.com/subject/wgekvktx.html