问题1. 使用for循环、while循环和递归写出3个函数来计算给定数列的总和。
首先是for循环,这是最基本的计算。
var arrData = [1,2,3];
var summary = 0;
for( i = 0; i < arrData.length; i++){
summary += parseFloat(arrData[i]);
}
alert(summary);
第二是while循环,这个循环语句在程序中没有for循环常用。但是在处理一些非定长循环逻辑等方面,能够比for更加灵活。当然,while中的条件部分有可能被写成永真式,造成程序死循环。这是程序员首先必须首先规避的问题。实例代码如下。
var arrData = [1,2,3];
var summary = 0;
i = 0;
while(i < arrData.length ){
summary += parseFloat(arrData[i]);
i++;
}
alert(summary);var arrData = [1,2,3];
/**
* 用递归算法求数组的和
* @param arr 被求和的数组
* @param n 数组的第n个值, 注意其上标为n-1
*/
function sum(arr, n) {
if (n > 0) {
return parseFloat(arr[n - 1]) + sum(arr, n - 1);
} else {
return 0;
}
}
alert(sum(arrData, arrData.length));补充第四个方法,是直接用eval进行字符串拼接的运算。这在一维数组计算中是一个非常常用的偷懒方法。
var arrData = [1,2,3];
alert(eval(arrData.join("+")));
原文地址:http://blog.csdn.net/u013589130/article/details/45692861