对象数组、对象的深拷贝

关于深拷贝、浅拷贝的的简单理解可以参见本人的这篇博客https://blog.csdn.net/sinat_37680470/article/details/81110025

 

开发过程中遇到了数组和对象拷贝的坑,所以在这里记录一下,以便日后查看!

 

        let objArr = [
            {
                name: '小明',
                id: 1
            },
            {
                name: '小王',
                id: 2
            }
        ]
        let getName = [];

        getName.push(objArr[0])
        
        getName.forEach(item => {
            item.name = '小丽';
        })

        console.log(objArr)
        console.log(getName)

在打印值中可以看到,档改变getName中的值时,objArr中的值也会发生改变,这就是一个浅拷贝的过程,当拷贝出来的值发生改变时被拷贝的对象也会发生变化。

实现深拷贝的方法:

1.JSON.parse(JSON.stringify(objArr[1]))

2.使用jq的extend方法

let name = {};

$.extend(true,name, objArr[1])

 

 

 

阅读更多
换一批

没有更多推荐了,返回首页