var obj = {a: 11, b: {c: 22, d: 33, e: {f: 44, g: {h: 55}}}}
var arr = [11, [22, 33, [44, [55]]]]
function copyObj(obj) {
? ? var newObj = obj.constructor === Array ? [] : {};
? ? for (var key in obj) {
? ? ? ? if(obj.hasOwnProperty(key)) {
? ? ? ? ? ? // 這里使用遞歸垄惧,屬性類型為對象則進(jìn)一步遍歷
? ? ? ? ? ? if (obj[key] && typeof obj[key] === 'object') {
? ? ? ? ? ? ? ? newObj[key] = obj[key].constructor === Array ? [] : {};
? ? ? ? ? ? ? ? newObj[key] = copyObj(obj[key])
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? newObj[key] = obj[key]
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return newObj
}
附運(yùn)行效果圖