计算数组中每个字符出现的次数

502 阅读1分钟

简单算法 计算数组中出现某个字符的次数

在平常工作中,我们经常会遇到求数组中每个元素的次数或累加和,所以特意写了这篇播客,方便日后查阅

在这里,我用了两个方法,一个是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}

代码到这里就完毕了,有什么错误或补充欢迎指正