菜鳥教程-reduce直通車
JS函數(shù)在線編輯直通車
用法
reduce() 方法接收一個函數(shù)作為累加器咒林,數(shù)組中的每個值(從左到右)開始縮減,最終計算為一個值垫竞。
reduce() 可以作為一個高階函數(shù)蛀序,用于函數(shù)的 compose。
注意: reduce() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的徐裸。
方法一:數(shù)組去重
const colors=["red","red","green","blue"]
const distinctColors=colors.reduce(
(distince,color)=>(distince.indexOf(color)!==-1)?distince:[...distince,color],[]
)
console.log(distinctColors)
// [ 'red', 'green', 'blue' ]
方法二:數(shù)取出數(shù)組中最大值
const ages=[21,98,34,48,31,36,31,34]
const maxAge=ages.reduce((max,age)=>(
max>age?max:age
),0)
console.log("maxAge",maxAge)
// maxAge 98
方法三:將數(shù)組轉(zhuǎn)化為對象
const users=[{id:1,title:'第一個名字',age:12}, {id:2,title:'第二個名字',age:19}, {id:3,title:'第三個名字',age:89}]
const objS=users.reduce((user,{id,title,age})=>{
user[id]={title,age}
return user
},{})
console.log(objS)
/*{
'1': { title: '第一個名字', age: 12 },
'2': { title: '第二個名字', age: 19 },
'3': { title: '第三個名字', age: 89 }
}*/
以上為個人學(xué)習(xí)到的部分用法啸盏,學(xué)習(xí)過程中會進(jìn)行補(bǔ)充重贺。