JS數(shù)組求和方法

數(shù)組求和,一般我們的想法都是去遍歷數(shù)組各項,然后累加。
那就是這樣:

 function sumArr(arr){
      var sum = 0;
      for(var i = 0;i<=arr.length;i++){
    sum += arr[i];//前提是arr中各項是數(shù)字,而不是數(shù)字字符串
//如果是數(shù)字字符串: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("+")) 
}//直接把他變成各個數(shù)的加法運算字符串

當然還有這種被人廣泛稱贊的函數(shù)式編程的寫法:

function sumArr(arr){
        return arr.reduce(function(prev,cur){
            return prev + cur;
        },0);
}
//reduce方法有兩個參數(shù),一個是callbackfunction(回調(diào)函數(shù)),
//二是設(shè)置prev的初始類型和初始值

有一道筆試題:(由此而總結(jié)了該文章)

給定任意非負整數(shù),反復(fù)累加各位數(shù)字直到結(jié)果為個位數(shù)為止。例如給定非負整數(shù)912,第一次累加9+1+2 = 12, 第二次累加1+2 = 3, 3為個位數(shù),循 環(huán)終止返回3。請編程實現(xiàn)。

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容