定义好函数,在函数内部继续使用,叫做递归。
通过遍历,找到原来数组中的每一项,如果 遍历出来的还是一个数组,
(Array.isArray()判断),就要继续执行递归函数。
如果遍历出来的,已经是字符串,就把这个遍历出来的值添加到新数组里面去。
newArr.push()
最后打印测试一下,函数对不对,调用函数的时候,看看定义函数的时候的参数,不能写错。
<script>
var arr1 = [11, 22, [33, 44], [55, 66, 77]];
// 定义一个函数,把arr1作为参数传进去,遍历arr1,把遍历出来的传到arr2里面去
function deepClone(arr1) {
var arr2 = [];
for (var i = 0; i < arr1.length; i++) {
// 到这一步可以遍历出arr1里面的值
// 里面有字符串有数组,继续判断
if (arr1[Array.isArray(arr1[i])]) {
deepClone(arr1[i]);
} else {
arr2.push(arr1[i]);
}
}
// for循环结束,函数里面返回arr3
return arr2;
}
// 执行函数测试一下对不对
console.log(deepClone(arr1));
</script>