使用函数处理数组

为什么要用函数处理数组呢?举个例子就知道了。
假设有一个数组,里面都是数字,要计算平均值怎么计算呢?
首先非函数编程。
var a = [1,1,3,5,5];
var b = 0;
for(var i=0;i<a.length;i++){
b+=a[i];
}
var c = b/a.length;
console.log(c);//结果为3;
这样看起来不简洁。
使用数组方法reduce()可以进行同样的计算。
var sum = function(x,y)
{ return x+y };
var a = [1,1,3,5,5];
var c = a.reduce(sum)/a.length;
console.log(c);//结果同样为3
这样看起来简洁了一些,如果是多个数组计算同一个值时,可以用同一个函数,减少了代码数量。
再举一个例子。求一个数组的标准差(首先计算每个数据减去平均数之后便差的平方然后求和)
上面已将求和了;
var sun = function(x,y){return x+y};
var square = function(x) {return x*x};
var a = [1,1,3,5,5];
var b = a.reduce(sum)/a.length;
var c = a.map(function(x) {return x-b});
var d = Math.sqrt(c.map(square).reduce(sum)/a.length);
console.log(d);//结果为1.78888
这里还用了一个map()函数。来实现这个计算。

猜你喜欢

转载自liujun11.iteye.com/blog/2381353
今日推荐