JavaScript学习系列(一) 复杂对象或数组深拷贝

it2024-05-13  52

需求,拷贝的数组中嵌套对象,且嵌套的对象中又包含数组,以此类推类似于树的结构,js自带的拷贝无法满足需求,复杂的对象深拷贝代码如下

function deepCopy(obj) { var result = Array.isArray(obj) ? [] : {};// 判断传入拷贝对象是否数组,是创建新数组[],否则创建新对象{} for (var key in obj) { //这里使用for in,因为for in循环可以遍历数组和对象 if (obj.hasOwnProperty(key)) { // 判断对象是否包含特定的自身(非继承)属性。 if (typeof obj[key] === 'object' && obj[key]!==null) { // typeof 对象 | 数组 | null ,返回 'object' result[key] = deepCopy(obj[key]); //递归复制 } else { result[key] = obj[key]; } } } return result; }
最新回复(0)