【前端面试】当被面试官问到 “数组的 reduce 方法”

累加
[1,2,3].reduce((pre,cur) =>{
return pre+cur
},0)
const result = [1,2,3].reduce((pre,cur) => pre+cur);
找最大值
const result = [1,2,3,2,1].reduce((pre,cur) => Math.max(pre,cur) )
数组去重
const resultList = [1,2,3,2,1].reduce((preList,cur) => {
if(preList.indexOf(cur) === -1){
preList.push(cur)
}
return preList
},[])
归类
const dataList = [
{
name:"aa",
country:"China"
},
{
name:"bb",
country:"China"
},
{
name:"cc",
country:"USA"
},
{
name:"dd",
country:"En"
}
]
const reslutObj = dataList.reduce((pre,cur) => {
const {country} = cur;
if(!preObj[country]){
preObj[country] = [];
}
preObj[country].push(cur);
return preObj;
},{});
字符串的反转
const str = "hello world";
const reslutStr = Array.from(str).reduce((pre,cur)=>{
return `${cur}${pre}`;
},'');