How to count duplicate value in an array in javascript

前端 未结 28 1782
后悔当初
后悔当初 2020-11-22 06:07

Currently, I got an array like that:

var uniqueCount = Array();

After a few steps, my array looks like that:

uniqueCount =          


        
28条回答
  •  自闭症患者
    2020-11-22 06:15

    Usage:

    wrap.common.getUniqueDataCount(, columnName);
    

    CODE:

    function getUniqueDataCount(objArr, propName) {
            var data = [];
            objArr.forEach(function (d, index) {
                if (d[propName]) {
                    data.push(d[propName]);
                }
            });
    
            var uniqueList = [...new Set(data)];
    
            var dataSet = {};
            for (var i=0; i < uniqueList.length; i++) {
                dataSet[uniqueList[i]] = data.filter(x => x == uniqueList[i]).length;
            }
            
            return dataSet;
        }
    

    Snippet

    var data= [
              {a:'you',b:'b',c:'c',d:'c'},
              {a: 'you', b: 'b', c: 'c', d:'c'},
              {a: 'them', b: 'b', c: 'c', d:'c'},
              {a: 'them', b: 'b', c: 'c', d:'c'},
              {a: 'okay', b: 'b', c: 'c', d:'c'},
              {a: 'okay', b: 'b', c: 'c', d:'c'},
              ];
              
      console.log(getUniqueDataCount(data, 'a'));       
      
      function getUniqueDataCount(objArr, propName) {
            var data = [];
            objArr.forEach(function (d, index) {
                if (d[propName]) {
                    data.push(d[propName]);
                }
            });
    
            var uniqueList = [...new Set(data)];
    
            var dataSet = {};
            for (var i=0; i < uniqueList.length; i++) {
                dataSet[uniqueList[i]] = data.filter(x => x == uniqueList[i]).length;
            }
    
            return dataSet;
        }

提交回复
热议问题