关于数组和对象的深拷贝方法

参考了阮一峰的深拷贝(阮一峰的深拷贝对数组来说,不是很严谨,会有问题,自己改进了下)

<script>
// 深拷贝方法
function deepCopy(data) {
    var c = data.constructor === Array ? [] : {};

    for(var k in data) {
        if (typeof data[k] === 'object') {
            c[k] = deepCopy(data[k]);
        } else {
            c[k] = data[k];
        }
    }
    return c;
};

var data1 = [{
    a: 1
}, 1, 2];

var data2 = {
    a: 1212,
    c: {
        b: 1,
        d: [4, 5, 6]
    },
    d: [1, 2, 3]
}
console.log(deepCopy(data1));
console.log(deepCopy(data2));

</script>

猜你喜欢

转载自blog.csdn.net/zhangjing0320/article/details/81545036
今日推荐