深度遍历数组对象

数组和对象都是引用类型,因此有深、浅拷贝之分,数组深拷贝可参考https://blog.csdn.net/fungleo/article/details/54931379
提醒一下的是数组中如果还有其他引用类型的数据,则需要递归深拷贝,否则修改数组中的引用类型还是会影响原数组中的引用类型,比如

var a = [{id:1}];
var b = a.slice(0);
b.id = 0;
console.log(a) // [{id:0}]

可采用以下深拷贝的方法

        function objDeepCopy(source) {
            var sourceCopy = source instanceof Array ? [] : {};
            for (var item in source) {
              sourceCopy[item] =
                typeof source[item] === "object"
                  ? objDeepCopy(source[item])
                  : source[item];
            }
            return sourceCopy;
        }

jquery可采用$.extend实现深拷贝 ,用法文档为http://www.runoob.com/jquery/misc-extend.html,比如深拷贝a到b

b = $.extend(true, [], a)

你可能感兴趣的:(深度遍历数组对象)