文章目录
-
递归的两种方式
一、递归的两种方式
当一个函数解决一个任务的时,在解决的过程中它可以调用很多其它的函数方法,在部分的情况下,会调用函数本身,这就是递归
有两种方式来实现
-
第一种迭代思路:使用for循环
function pows(x, n) { let result = 1; // 再循环中,用 x 乘以 result n 次 for (let i = 0; i < n; i++) { result *= x; } return result; } alert( pows(2, 3) ); // 8
-
第二种递归思路:简单任务,调用自身
function pows(x, n) { if (n == 1) { return x; } else { return x * pows(x, n - 1); } } alert( pows(2, 3) ); // 8
如果n==1,则pow(x,1)就等于1,否则要去执行下面的语句,直到执行到n==1为止
如果可以的,我们可以用条件运算符来写
function pows(x, n) {
return (n == 1) ? x : (x * pows(x, n - 1));
}