JavaScript如何遍历多维数组,采用递归的方式

JavaScript011

JavaScript如何遍历多维数组,采用递归的方式,第1张

function getArrayValue(){ var arr = new Array(['a','b','c'],['d','e','f'])//二维数组 for(i=0i<arr.lengthi++){ var tmpArr = new Array()tmpArr = arr[i]for(j=0j<tmpArr.lengthj++){ var tmp = tmpArr[j]alert(tmp) } } } 给你一个例子,多维的话可以在循环。(可能方法比较笨,但是好用)

如果num=5的话

第一次进入时执行esle

得return 5 * factorial(4)

factorial(4)同样得return 4 * factorial(3)

factorial(3)同样得return 3 * factorial(2)

factorial(2)同样得return 2 * factorial(1)

factorial(1)则执行if得 return 1

将factorial(1)代入factorial(2),再代factorial(3),再代入factorial(4),

再代入 return 5 * factorial(4)最终为 return 5*4*3*2*1

<!DOCTYPE >

<html>

<head>

<meta content="" charset="utf-8">

<title>函数的递归调用</title>

</head>

<body>

<script>

//递归的概念:自己调用自己

//注意:使用递归的时候必须有一个结束标志,否则会报内存溢出的错误 Maximum call stack size exceeded

/* 1.案例一:求1,2,3...n 的和 */

function fn(n){

if(n===1){

return 1

}

return n+fn(n-1)

}

//console.log(fn(3))

/* 2.案例二:求1,2,3...到n的阶乘 */

function getFactorial(n){

if(n===1){

return 1

}

return n * getFactorial(n-1)

}

//console.log(getFactorial(3))

/* 案例三:斐波那契数列 *///第n个数等于前两个数的和,除第一个数跟第二个树外:如1,1,2,3,5,8,11,19,30...

function getNFibonacciSequence(n){

if(n===1 || n===2){

return 1

}

return getNFibonacciSequence(n-1)+getNFibonacciSequence(n-2)

}

console.log(getNFibonacciSequence(4))

</script>

</body>

</html>