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
相關文章
相關標籤/搜索