文章 评论 浏览 29
引用类型只考虑Array,Object
function DFSCopy(old) { if (typeof old !== 'object') return old; const isArray = Array.isArray(old); const newObj = isArray ? [] : {}; if (isArray) { for (let i = 0; i < old.length; i++) { newObj[i] = deepCopy(old[i]); } } else { for (let i in old) { newObj[i] = deepCopy(old[i]); } } console.log(newObj); return newObj; } function BFScopy(a) { const queue = []; const b = new a.constructor(); queue.push([a, b]); while (queue.length) { const [oldObj, newObj] = queue.shift(); for (let i in oldObj) { if (typeof oldObj[i] === 'object') { newObj[i] = new oldObj[i].constructor(); queue.push([oldObj[i], newObj[i]]); } else { newObj[i] = oldObj[i]; } } } return b; }
文章 0 评论 0
接受
引用类型只考虑Array,Object
第 6 题:请分别用深度优先思想和广度优先思想实现一个拷贝函数?