面试题中经常会出现统计次数的一类题目,今天就记录一下。
统计素组元素出现次数
里面用到的只是点事数组方法 reduce 和对象中的属性唯一。
let arr = ['dog', 'cat', 'cat', 'duck', 'dog']
let count = (arr = []) => {
//第一次 preArr 会以{}作为值
let res = arr.reduce((preArr, curItem) => {
preArr[curItem] = preArr[curItem] ? preArr[curItem] + 1 : 1;
return preArr; //这样preArr 就会迭代到下一次的preArr
}, {})
return res
}
console.log(JSON.stringify(count(arr)), '111')