这是我去面试碰到的一道题,求 var num = [1,2,3,...,100] 的和,当初没细想,回过头来总结一下,综合网上的案例,有由如下10种方法:
1、for
var sum1 = 0;
for (var i = 0; i < num.length; i++) {
sum1 += num[i];
}
console.log(sum1); //5050
2、for…in
var sum2 = 0;
for(var i in num){
sum2 += num[i]
}
console.log(sum2);
3、while
var sum3 = 0,i = 1;
while(i<=100){
sum3 += i;
i++;
}
console.log(sum3);
4、do…while
var sum4 = 0,i = 1;
do{
sum4 += i;
i++;
}
while(i<=100);
console.log(sum4);
5、递归
function sum5(i){
if( i === 1 ){
return 1
}
return sum5(i-1)+i;
}
console.log(sum5(100));
6、eval
var sum6 = eval(num.join("+"));
console.log(sum6);
7、reduce
var sum7 = num.reduce((t,i)=>t+=i,0);
console.log(sum7);
8、map
var sum8 = 0;
num.map((i)=>sum8+=i);
console.log(sum8);
9、forEach
var sum9 = 0;
num.forEach((i)=>sum9+=i);
console.log(sum9);
10、filter
var sum10= 0;
num.filter((i)=>sum10+=i);
console.log(sum10);