jS之递归及数组扁平化
简而言之,递归就是在函数内自己调用自己或者间接调用自己。
必要条件,递归必须要有出口,负责会造成栈溢出。(Uncaught RangeError: Maximum call stack size exceeded)
递归经典应用场景(斐波那契数列)
function recursion(n
){
if(n
=== 1 || n
=== 2)return 1;
return recursion(n
- 1) + recursion(n
- 2);
}
console
.log(recursion(n
));
数组扁平化
var arr
= [1,2,[3,4],[5,[6,7],[8],9],10,11];
function flatFun(arr
){
var newArr
= [];
arr
.map(item
=> {
if(item
&& Array
.isArray(item
)){
newArr
= newArr
.concat(flatFun(item
))
}else{
newArr
.push(item
)
}
})
return newArr
;
}
console
.log(flatFun(arr
));
转载请注明原文地址:https://blackberry.8miu.com/read-43893.html