问题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