在想一个js算法,如何算出数组所有项的出现次数

比如 var arr = [1, 2, 3, 1, 5, 8, 2, 9, 9, 2, 2, 2, 3];

如何才能能够算出,数组中有几种值,以及某种值出现的次数呢?

比如这个题答案就是:  
数组中出现的元素值为:1, 2, 3, 5, 8, 9这几个。
其中1出现次数为2次,2出现次数为5次,3出现次数为2次,5出现次数为1次,8出现次数为1次,9出现次数为2次。

各位大佬有什么思路吗?

如果您有思路,可以给小弟来个评论,实现方法多多益善~~~
阅读 737
评论 2018-12-04 提问
    7 个回答

    可以用对象的来保存如

       let countObj = {};
       const arr = [1, 2, 3, 1, 5, 8, 2, 9, 9, 2, 2, 2, 3];
    
       arr.forEach( item => {
        if (countObj[item] !== undefined) {
           console.log('aa')
           countObj[item]++;
        } else {
           countObj[item] = 0;
        }
       })
    
       console.log(countObj)

    这个 countObj 的key 就是你数组的数字, value 就是对应 的次数

    评论 赞赏 2018-12-04