1.reduce 的初始值不止是数字 还可以跟对象数组 这里我们想要得到一个对象
2.所以我们设置初始值为对象 做个简单的判断
判断思路如下:
if( 对象里有没有item循环的这个值 ){
有 则让这个数加一
}else{
否则 让这个值等于一 (这样后面碰到相同的值就加一 做到计算个数的效果)
}
具体代码如下 (可以通过三元表达式让代码更简洁)
var arr =['a','b','c','a','b','c','a','b','c','a','b','c']
var aaa = arr.reduce((value,item)=>{
value[item]?value[item]++: value[item]=1
return value
},{})
console.log(aaa); //{a: 4, b: 4, c: 4}