js数组求和方法总结

数组求和,通常咱们的想法都是去遍历数组各项,而后累加。
那就是这样:编程

function sumArr(arr){
    var sum = 0;
    for(var i = 0;i<=arr.length;i++){
  sum += arr[i];//前提是arr中各项是数字,而不是数字字符串
//若是是数字字符串:sum += Number(arr[i]);
  }
return sum;
}

又或者是forEach遍历:数组

function sumArr(arr){
        var sum = 0;
        arr.forEach(function(val,index,arr){
              sum += val;
        })
    return sum;
}

还有一种比较黑科技的写法:函数式编程

function sumArr(arr){
        return eval(arr.join("+")) 
}//直接把他变成各个数的加法运算字符串

固然还有这种被人普遍称赞的函数式编程的写法:函数

function sumArr(arr){
    return arr.reduce(function(prev,cur){
        return prev + cur;
    },0);
}
//reduce方法有两个参数,一个是callbackfunction(回调函数),
//二是设置prev的初始类型和初始值

有一道笔试题:(由此而总结了该文章)code

给定任意非负整数,反复累加各位数字直到结果为个位数为止。例如给定非负整数912,第一次累加9+1+2 = 12, 第二次累加1+2 = 3, 3为个位数,循 环终止返回3。请编程实现。
function add(num){
    if(isNaN(num)) return;
    if(num<10) return num
    const res=num.toString().split('').reduce((sum,value)=>{
        return sum+Number(value)
    },0)
    return add(res);
}
add(345);
3
相关文章
相关标签/搜索