我有很多公司的注册人(有些来自同一公司,有些没有),我需要计算出同一公司有多少人注册。因此,我需要一个数字来告诉我,有多少来自独特公司的人(在第一人之后)已经注册。
说我有一个数组:
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;
}