请问老师哪里出错了,输出arr2显示的是空数组
var arr = [1, 2, 3, [4, 5, 6]]
function deepClone(o) {
var result = []
for (var i = 0; i < o.length; i++) {
result.push(deepClone(o[i]))
}
return result
}
var arr2 = deepClone(arr)
console.log(arr2);
16
收起
正在回答
1回答
同学你好,对于数组[1, 2, 3, [4, 5, 6]]如果不断进行递归的话,那么最终传入deepClone函数的是数组中的一个个元素,例如:deepClone(1)、deepClone(2)等,将数字代入deepClone函数,得到的result为空数组[],arr2变量中存放的是result,所以也为空数组,如图
因此,需要按照视频中老师所讲的那样,添加一个if判断条件,当传入的参数是数组时,才会执行这段代码,如果是基本类型的数据,则直接赋给result,如图
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星