再次了解深浅拷贝问题

Posted naniandongzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再次了解深浅拷贝问题相关的知识,希望对你有一定的参考价值。

之前虽然看到好多关于这方面的问题,但是在实际项目中使用到的,都不是我之前简单了解的方法;深拷贝的方法有很多,但一般针对的是对象形式,所以当遇到json数组这样

的结构后,发现之前了解的方法都是不可行的;

当需要删除数组中某些数据时候,发现深复制后 的数据做删除操作后,原数据也发生改变,试了好几个拷贝方法包括最常用的Object.assign([],arr),concat等都不行,所以要了解下面这个方法:

var objDeepCopy = function (source) {
    var sourceCopy = source instanceof Array ? [] : {};
    for (var item in source) {
        sourceCopy[item] = typeof source[item] === ‘object‘ ? objDeepCopy(source[item]) : source[item];
    }
    return sourceCopy;
}
var objCopy = objDeepCopy(obj);
objCopy[0].a.a1[1] = "a13";
objCopy[1][1].e = "6";

 

以上是关于再次了解深浅拷贝问题的主要内容,如果未能解决你的问题,请参考以下文章

python--is/id==,集合,深浅拷贝

python——赋值与深浅拷贝

python——赋值与深浅拷贝

深浅拷贝

什么是深浅拷贝?如何实现深浅拷贝

python——赋值与深浅拷贝