js--數(shù)組的reduce()累加方法的使用

前言
正文
var arr=[1,2,3,4]var rules=function(a,b){return a+b}function myreduce(array,callback){//校驗if (!Array.isArray(array)) {throw('調(diào)用對象必須是一個數(shù)組');}if (typeof callback != 'function') {throw('累計器必須是一個函數(shù)類型');}let initialValue=0//定義初始值為0if (array.length === 0) {return initialValue;}for (let index = 0; index < array.length; index++) {initialValue=callback(initialValue,array[index])}return initialValue}var totalValue =myreduce(arr,rules)console.log(totalValue)//輸出10
/*** @param function 必要參數(shù),用于執(zhí)行每個數(shù)組元素的函數(shù)* @param initialValue 可選參數(shù),傳遞給函數(shù)的初始值*/array.reduce(/*** @param total 必要參數(shù),初始值或計算結(jié)束后的結(jié)果。* @param currentValue 必要參數(shù),當(dāng)前元素* @param currentIndex 可選參數(shù),當(dāng)前參數(shù)的下標* @param arr 可選參數(shù),數(shù)組對象*/function(total, currentValue, currentIndex, arr),initialValue);
var arr=[1,2,3,4]var total=arr.reduce((a,b)=>a+b)console.log(total)//輸出10
let arr = ['A', 'B', 'C', 'B', 'A'];let times = arr.reduce((pre,cur)=>{if(cur in pre){pre[cur]++}else{pre[cur] = 1}return pre},{})console.log(times);//輸出{A:2,B:2,C:1}
let arr = [[0, 1], [2, 3], [4, 5]]let newArr = arr.reduce((pre,cur)=>{return pre.concat(cur)},[])console.log(newArr); // [0, 1, 2, 3, 4, 5]//同樣可以實現(xiàn)多維到一維
let info=[{name:"小明",score:100},{naem:"小紅",score:110},{name:"小強",score:120}]let totalScore=info.reduce((pre,cur)=>{return pre+cur.score},0)console.log(totalScore);//輸出330
let arr = [1,2,3,4,4,1]let newArr = arr.reduce((pre,cur)=>{if(!pre.includes(cur)){return pre.concat(cur)}else{return pre}},[])console.log(newArr);// [1, 2, 3, 4]

評論
圖片
表情
