数组求和可以用以下几种方法做:
-
普通遍历
function sum(arr){
var s=0;
for(var i=0; i<arr.length; i++){
s+=arr[i];
}
return s;
}
-
arr.reduce
function sum(arr){
var s = arr.reduce(function(prev,curr,idx,arr){
return prev+curr;
},0)
return s;
}
数组方法reduce用来迭代一个数组,并将数组中的值进行累加,reduce在使用时,要传入一个回调函数,即累加器,这个回调函数中有四个值,prev为初始值,curr为当前值,二者必不可少,idx索引和arr数组对象可选。
reduce方法有一个可选的第二个参数,用来设置累加器的初始值,如果不设置,则累加器初始值prev为arr数组的第一个值,curr则从数组的第二个值开始。
-
arr.forEach
function sum(arr){
var s=0;
var sum = arr.forEach(function(val,idx,arr){
s+=val;
},0)
return s;
}
数组方法forEach用于遍历数组的每一个元素,并将元素值传给回调函数。
-
arr.map
function sum(arr){
var s=0;
arr.map(function(val,idx,arr){
s+=val;
})
return s;
}
map和forEach使用方法相同。
-
eval
function sum(arr){
return eval(arr.join('+'));
}
JavaScript的eval函数,用于计算某个字符串并执行其中的JavaScript代码;数组的join方法用于把数组中的元素放入一个字符串中,使用特定的分隔符进行连接。