本节内容:
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