1、實(shí)現(xiàn)對象的遞歸遍歷
實(shí)現(xiàn) {a: 11, b: {c: 22, d: 33, e: {f: 44, g: {h: 55}}}} {a: 11, c: 22, d: 33, f: 44, h: 55}??
var obj = {a: 11, b: {c: 22, d: 33, e: {f: 44, g: {h: 55}}}}
var newObj = {};
function copyObj(obj) {
? ? for (var key in obj) {
? ? ? ? // 這里使用遞歸,屬性類型為對象則進(jìn)一步遍歷
? ? ? ? if (typeof obj[key] == 'object') {
? ? ? ? ? ? copyObj(obj[key])
? ? ? ? } else {
? ? ? ? ? ? newObj[key] = obj[key]
? ? ? ? }
? ? }
}
copyObj(obj)
console.log(newObj)
2、實(shí)現(xiàn)數(shù)組的遞歸遍歷
實(shí)現(xiàn)? [11, [22, 33, [44, [55]]]]??[11, 22, 33, 44, 55]
var arr = [11, [22, 33, [44, [55]]]];
var newArr = [];
function copyArr(arr) {
? ? arr.map(item => {
? ? ? ? // 這里使用遞歸躬它,屬性類型為數(shù)組則進(jìn)一步遍歷
? ? ? ? if (Array.isArray(item)) {
? ? ? ? ? ? arguments.callee(item)? // 或copyArr(item)
? ? ? ? } else {
? ? ? ? ? ? newArr.push(item);
? ? ? ? }
? ? })
}
copyArr(arr)
console.log(newArr)