reduce()函数的使用

68 阅读1分钟
数组求和
var arr = [1,2,3,4]

var sum = arr.reduce(function(prev,elem,i,arr){
    //prev参数:表述当前元素之前的临时汇总值 
    //elem参数(必须):表述当前元素的的值 
    //i参数(可选):表述当前元素的索引也就是第几个数组元素 
    //arr参数(可选):表述正在调用reduce()函数.前的对象
    return prev + elem   //数组求和
},0)     //0代表起始值
统计一个字符串中每种字符出现的次数
var str = "helloWord"

//将str字符串拆散成数组
var str1 = str.split("")
var result = str1.reduce(function(prev,elem){
    //prev: 结果对象{}
    //elem: 当前字母
    if(prev[elem] === undefined){
        prev[elem] = 1
    }else{
        prev[elem]++
    }
    return prev
},{})
数组中去掉重复对象
var arr = [
    {name: "a"id: 1},
    {name: "b"id: 2},
    {name: "c"id: 3},
    {name: "d"id: 1},
    {name: "e"id: 3},
    {name: "f"id: 14},
]
let hash = {}
arr = arr.reduce((preVal,curVal)=>{
    return [curVal.id]? "" : hash[curVal.id] = true && preVal.push(curVal)
},[])