我有一个来自多家公司(一些来自同一家公司,一些不是)的注册人的阵列,我需要计算来自同一家公司的注册人数.所以我需要一个数字告诉我有多少人(在第一个之后)来自独特的公司注册.
说我有一个数组:
var company_names = ['acme', 'acme', 'bobo', 'comanche', 'acme', 'comanche'];
和变量:
var companies_eligible_for_discount = 0;
我如何计算3个折扣? (2表示“acme”,1表示“comanche”)
解决方法:
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;
}