Extracting the most duplicate value from an array in JavaScript (with jQuery)

前端 未结 5 1218
不思量自难忘°
不思量自难忘° 2020-12-01 17:26

I have several array to deal with. I need to extract the most duplicate value from each array.

From [3, 7, 7, 7], I need to find the value 7

5条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-01 18:09

    Another solution can be based on Array.reduce():

    var arr = [1,1,2,5,4,2,10,10,1,1,1,3,10,10,3,4,3,10,3,5,6,2,3,1,1,10,10,2,4,3,6,10,6,6];
    
    var result = arr.reduce(function(acc, e) {
        acc[e] = (acc[e] || 0) + 1;
        if (acc[e] > acc.mostFreq.freq) {
            acc.mostFreq.value = e;
            acc.mostFreq.freq = acc[e];
        }
        return acc;
    }, {"mostFreq": {"value": 0, "freq": 0}}).mostFreq;
    
    console.log('The most duplicated elements is: ' + JSON.stringify(result));

提交回复
热议问题