JS怎么判断数组有多少个重复的

灰螳螂
  • 1.6k

比如
['aa','aa','bb','cc','aa','dd','dd'];

'aa' 有 3个重复的。

怎么判断一个数组里面到底有几个重复的?

回复
阅读 4.6k
5 个回答
var arr = [1,2,3,4,1,3,4,5,5,88,7,3,1];
    function counterArray(arr){
        var obj = {}
        arr.forEach(function(v,k){
            if(obj[v]){
                obj[v]++;
            }else{
                obj[v] = 1;
            }
        })
        return obj;
    }

不过这种方法只能对字符串或者数字有效,对于对象就不行了

for循环不会写?

可以用loadsh的_.countBy.

具体是怎么实现的也可以看看loadsh的源码

    const arr = ['aa','aa','bb','cc','aa','dd','dd'];
    const a = "aa";
    
    const newArr = arr.filter((x) => x === a);
    console.log(newArr.length);
宣传栏