简单算法 计算数组中出现某个字符的次数
在平常工作中,我们经常会遇到求数组中每个元素的次数或累加和,所以特意写了这篇播客,方便日后查阅
在这里,我用了两个方法,一个是forEach循环,一个是reduce,reduce是es6新增的api,非常好用,可以实现很多功能
1.使用forEach计算数组中字符的出现次数
let arr = ["a","b","c","d","f","a","b","a","b","d","f","a","f","a","b"]
// 一.使用forEach方法
// 01.先定义一个空对象,用来接收
const obj = {}
arr.forEach(item => {
// 02.判断对象有没有这个属性
if(obj[item]) {
obj[item]++
} else {
obj[item] = 1
}
})
console.log(obj); // {a: 5, b: 4, c: 1, d: 2, f: 3}
2.使用reduce计算数组中字符的出现次数
- 使用reduce 代码就可以简短很多,reduce自带累加器可以帮助我们做很多事
let arr = ["a","b","c","d","f","a","b","a","b","d","f","a","f","a","b"]
// 二.使用reduce方法
const obj = arr.reduce((all,item) => {
// 这里使用三元表达式
all[item] ? all[item]++ :all[item] = 1
return all
},{})
console.log(obj); // {a: 5, b: 4, c: 1, d: 2, f: 3}
代码到这里就完毕了,有什么错误或补充欢迎指正