reduce()函数,官方定义:方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值,接收四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
这里不做过多说明,说下简单的使用。
1、数组去重。
let str = 'asdfsfewfsdfsfzfefac';
let array = str.split('');
//简单数组去重
let newarray = [];
for(let i = 0;i<array.length;i++){
if(newarray.indexOf(array[i])<0){
newarray.push(array[i])
}
}
//reduce
let reduce_arr = array.reduce((cur,pre)=>{
if(!cur.includes(pre)){
cur.push(pre)
}
return cur
},[]);
2、统计字符串出现的次数
let str = 'asdfsfewfsdfsfzfefac';
//简单统计
let obj = {};
for(let i = 0;i<str.length;i++){
if(obj[str[i]]){
obj[str[i]]++
}else{
obj[str[i]]=1
}
}
//reduce
let reduce_str = str.split('').reduce((cur,pre)=>{
cur[pre]?cur[pre]++:cur[pre]=1;
return cur
},{});