概述
<script>
//【示例1】数学上常用的阶乘函数、幂函数和斐波那契数列。以阶乘函数为例,对于这种递归定义的函数,可以使用递归过程来求解:
var f = function (x) {
if (x < 2)
return 1; // 递归终止条件
else
return x * arguments.callee(x - 1); // 递归调用过程
}
alert(f(6)); // 返回6的阶乘值为720
//【示例2】文档树就是一种递归的数据结构,下面使用递归运算来计算指定节点内所包含的全部节点数。
function f(n) { // 统计指定节点及其所有子节点的个数
var l = 0; // 初始化计数变量
if (n.nodeType == 1) // 如果是元素节点,则计数
l++; // 递加计数器
var child = n.childNodes; // 获取子节点集合
for (var i = 0; i < child.length; i++) { // 遍历所有子节点
l += f(child[i]); // 递归运算,统计当前节点下所有子节点数
}
return l; // 返回节点数
}
window.onload = function () { // 绑定页面初始化事件处理函数
var body = document.getElementsByTagName("body")[0];
// 获取当前文档中body节点句柄
alert(f(body)) // 返回2,即body和script两个节点
}
function f(n, a, b, c) {
if (n == 1) // 特殊处理
document.write(a + " → " + c + "<br />");
// 输出显示,直接让参数a移给c
else {
f(n - 1, a, c, b); // 递归调用函数,调整参数顺序,让参数a移给b
document.write(a + " → " + c + "<br />");
// 输出显示
f(n - 1, b, a, c);
// 如果当n等于1时,调整参数顺序,让参数b移给c
}
}
f(3, "A", "B", "C"); // 调用函数
</script>
最后
以上就是背后小天鹅为你收集整理的Javascript 递归运算的全部内容,希望文章能够帮你解决Javascript 递归运算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复