陣列 reduce 方法

2022-07-10 11:45:10 字數 2686 閱讀 3749

reduce()是接受乙個函式作為累加器,陣列中每乙個值從左到右計算成乙個值

arr.reduce(callback,[initialvaluce])

1.previousvalue //

上一次呼叫返回的值或者是提供的初始值(initialvalue)

2.currentvalue //

陣列當前被處理的元素

3.index//

當前元素的索引值

4.array//

呼叫的陣列

例子1.

var arr= [1,2,3,4

];var sum=arr.reduce((prev,cur,index,arr)=>)

console.log(arr,sum)

列印結果

121

3326

43[1, 2, 3, 4] 10

總結:index是從1開始,陣列長度是4,迴圈3次,第一次prev的值是陣列的第乙個值

例子2.

var arr= [1,2,3,4

];var sum=arr.reduce((prev,cur,index,arr)=>,0)

console.log(arr,sum)

列印結果

010

1213

3264

3[1, 2, 3, 4] 10

總結:initialvalue傳值的話,索引是從0開始,迴圈4次

如果陣列是空的話,initialvalue沒有傳值的話會報錯,但是如果傳值的話就不會報錯,所以一搬傳值比較保險

var arr =

var sum=arr1.reduce((prev,cur,index,arr)=>)

//報錯 reduce of empty array with no initial value

var sum=arr1.reduce((prev,cur,index,arr)=>,0)

console.log(arr1,sum)

// 0 不會報錯

var arr = [1,2,3,4,5

]var sum=arr.reduce((x,y)=>x+y)

var mul=arr.reduce((x,y)=>x*y)

console.log(sum)

//15

console.log(mul) //

120var mul1=arr.reduce((x,y)=>,1)

console.log(mul1)

//120

let arr =['

張三','

張三','

李四','

李四','王二'

]let arrnum=arr.reduce((prev,cur)=>

else

return

prev

},{})

console.log(arrnum)

結果

{} "張三"

"張三" "

李四""李四" "

王二"

let obj =

if('

name'in

obj)

else

//結果 obj物件中包含name屬性

ifin 判斷物件是否包含某個屬性

去重let arr = [1,2,3,4,4,1,3]

let newarr = arr.reduce((pre,cur)=>else

},)console.log(newarr);// [1, 2, 3, 4]

let arr = [1,2,3,4,4,1,3,5,5]

let newarr = arr.reduce((pre,cur)=>,)

console.log(newarr)// [1, 2, 3, 4, 5]

let arr = [1,2,3,4,4,1,3,5,5]

let newarr = arr.reduce((pre,cur)=>pre.includes(cur)?pre:[...pre,cur],)

console.log(newarr) //[1, 2, 3, 4, 5]

let arr = [[6,7],[4,5],[1,2,3

]]let newarr = arr.reduce((pre,cur)=>pre.concat(cur),)

console.log(newarr) //[6, 7, 4, 5, 1, 2, 3]

let arr = [[1,2,3],[4,5,6],[[7,8,9],10],[[11],[12],[13

]]]const newarr =function(arr)

console.log(newarr(arr))

//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

let arr =[,,

,,

]let newarr = arr.reduce((pre,cur)=>pre+cur.num,0

)console.log(newarr)

//330

陣列reduce 方法

reduce 函式接收的引數和map 類似,乙個函式f,乙個list,但行為和map 不同,reduce 傳入的函式f必須接收兩個引數,reduce 對list的每個元素反覆呼叫函式f,並返回最終結果值。例子def f x,y return x y reduce f,1,3,5,7,9 返回結果為2...

陣列的reduce方法

arr.reduce callback accumulator,currentvalue,index,array initialvalue 如果沒有initialvalue,預設陣列的第一項為initialvalue,第一次的currentvalue為陣列的第二項 沒有提供initialvalue ...

陣列(Array)的常用方法(reduce)

reduce 陣列通過此方法,可以實現將每一項疊加稱為一項。使用 sum arr.reduce fun,start 其中,fun為乙個方法,接收四個引數,分別為 cur 當前項的值 index 當前項的index arr 原陣列 其中,start為疊加計算定義型別,並且為初始值,此值可以根據實際情況...