NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
考虑数组版(常用版) ``` 1.判断是否是引用类型: 如果不是,则直接 return 2.判断是对象还是,数组 3.用 for in 遍历每一个 key,并将 target 的value赋值给 新的 value 4.赋值value的时候,注意可能value也是一个引用类型,所以需要自调用clone方法,形成递归 5.for in 结束时递归结束 ``` ```js function clone(target) { // 判断是否为引用类型 if (typeof target === 'object') { // 判断是否为数组 let cloneTarget = Array.isArray(target) ? [] : {} for (let key in target) { // 递归 cloneTarget[key] = clone(target[key]) } return cloneTarget } else { return target } } ```