如何在javascript数组中找到最重复的"值"?

Yam*_*ine 0 javascript arrays sorting

我的问题实际上类似于:在JavaScript中从数组中提取最重复的值(使用jQuery)

我找到了这个,但它总是只返回一个值200.

var arr = [100,100,200,200,200,300,300,300,400,400,400];
    var counts = {}, max = 0, res;
    for (var v in arr) {
      counts[arr[v]] = (counts[arr[v]] || 0) + 1;
      if (counts[arr[v]] > max) { 
        max = counts[arr[v]];
        res = arr[v];
      }

    }
    console.log(res + " occurs " + counts[res] + " times");
Run Code Online (Sandbox Code Playgroud)

请帮我回报价值不仅仅是一个......

结果是这样的:200,300,400.请帮助谢谢!

ati*_*589 5

您必须迭代计数才能找到最大发生的结果.

var arr = [100,100,200,200,200,300,300,300,400,400,400];
    var counts = {}, max = 0, res;
    for (var v in arr) {
      counts[arr[v]] = (counts[arr[v]] || 0) + 1;
      if (counts[arr[v]] > max) { 
        max = counts[arr[v]];
        res = arr[v];
      }

    }
    var results = [];
    for (var k in counts){
      if (counts[k] == max){
        //console.log(k + " occurs " + counts[k] + " times");
        results.push(k);
      }
    }
    console.log(results);
Run Code Online (Sandbox Code Playgroud)