javascript 递归函数用法示例

发布时间:2019-11-27编辑:脚本学堂
分享一个javascript递归函数的例子,在javascript中,递归函数使用并不常见,但是在处理树状结构的数据(比如DOM数据)时递归非常有用。

本节内容:
js递归函数用法

一个调用自己的函数叫做递归函数(recursive function).在javascript中,递归函数使用并不常见,但是在处理树状结构的数据(比如DOM数据)时递归非常有用。
在javascript中使用递归函数时,要注意它会有较高的内存和资源消耗,并且实现和维护起来很复杂,所有,不要滥用。

例子,使用递归函数遍历一个数值型数组,将数组中的数相加,然后将相加结果数加入到一个字符串中。

复制代码 代码示例:
<!doctype html public "-//w3c//dtd html 4.01//en" "http://www.w3.org/tr/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Recursion</title>
</head>
<body>
<script type = "text/javascript">
var addNumbers = function sumNumbers(numArray, indexVal, resultArray){
    if (indexVal == numArray.length) {
        return resultArray;
    }
    resultArray[0] += Number(numArray[indexVal]);
    if (resultArray[1].length > 0) {
        resultArray[1] += " and ";
    }
    resultArray[1] += numArray[indexVal].toString();
    indexVal++;
    return sumNumbers(numArray, indexVal, resultArray);
}
var numArray = ['1', '35.4', '-44', '14', '55'];
var resultArray = new Array(0, ' ');//初始化存放结果的数组,长度为2,
//元素1存放数组numArray元素相加的结果“和”,
//元素2存放数组numArray的所有元素按String类型输出。
var result = addNumbers(numArray, 0, resultArray);
document.writeln(result[0] + "<br />");
document.writeln(result[1]);
</script>
</body>
</html>

输出结果:

61.4
1 and 35.4 and -44 and 14 and 55