我有很多公司的注册人(有些来自同一公司,有些没有),我需要计算出同一公司有多少人注册。因此,我需要一个数字来告诉我,有多少来自独特公司的人(在第一人之后)已经注册。

说我有一个数组:

var company_names = ['acme', 'acme', 'bobo', 'comanche', 'acme', 'comanche'];

和一个变量:
var companies_eligible_for_discount = 0;

我如何算出要分配的3个折扣? (“acme”为2,“comanche”为1)

最佳答案

var dupes = {};

company_names.forEach(function(v,i) {
    if( v in dupes ) {
        dupes[v]++;
        companies_eligible_for_discount++;
    }
    else dupes[v] = 0;
});
var dupes = {}, v, i;

for( i = 0; i < company_names.length; ++i ) {
    v = company_names[i];
    if( v in dupes ) {
        dupes[v]++;
        companies_eligible_for_discount++;
    }
    else dupes[v] = 0;
}

08-28 19:00