Javascript 把数组中重复的项目汇总起来

Javascript 把数组中重复的项目汇总起来,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有以下JavaScript数组: var President = new Array(); President[0]="Thomas Jefferson"; President[1]="Thomas Jefferson"; President[2]="Thomas Jefferson"; President[3]="Thomas Jefferson"; President[4]="Thomas Jefferson"; President[5]="Thomas Jefferson"; Presi

我有以下JavaScript数组:

var President = new Array();
President[0]="Thomas Jefferson";
President[1]="Thomas Jefferson";
President[2]="Thomas Jefferson";
President[3]="Thomas Jefferson";
President[4]="Thomas Jefferson";
President[5]="Thomas Jefferson";
President[6]="Thomas Jefferson";
President[7]="Thomas Jefferson";
President[8]="Thomas Jefferson";
President[9]="Thomas Jefferson";
President[10]="Thomas Jefferson";
President[11]="Thomas Jefferson";
President[12]="Thomas Jefferson";
President[13]="James Madison";
President[14]="James Madison";
President[15]="James Madison";
President[16]="James Madison";
President[17]="James Madison";
President[18]="James Madison";
President[19]="James Madison";
President[20]="Abraham Lincoln";
President[21]="Abraham Lincoln";
President[22]="Abraham Lincoln";
President[23]="Abraham Lincoln";
President[24]="Abraham Lincoln";
President[25]="George Washington";
如何对重复项进行汇总,使输出如下:

Thomas Jefferson: 13
James Madison: 7
Abraham Lincoln: 5
George Washington: 1

谢谢你的帮助

我不是javascript开发人员,但根据js中有关哈希表的文章,您可能需要以下内容:

var h = new Object();
for (var p in President) {
    if (h.hasItem(p)) {
        h.setItem(p, h.getItem(p) + 1);
    }
    else {
        h.setItem(p, 1);
    }
}

for (var p in h)
{
    document.write(p);
    document.write(":");
    document.write(h.getItem(p));
    document.write("<br />");
}
var h=新对象();
for(总裁中的var p){
如果(h.第(p)项){
h、 setItem(p,h.getItem(p)+1);
}
否则{
h、 设定项(p,1);
}
}
对于(var p,单位为h)
{
文件编写(p);
文件。写(“:”);
编写(h.getItem(p));
文件。写(“
”); }
@Tyson:不应使用for.遍历数组。。在

  for (var stats = {}, potus, i = President.length; i--;) {
    if (!((potus = President[i]) in stats)
      stats[potus] = 0; // Initialize a new counter
    stats[potus]++;
  }

  // Now stats['Thomas Jefferson'] will be 13 etc.
仅供参考,发布问题时,文本编辑器中有一个“代码示例”格式按钮。还有,到目前为止你试过什么?可能是重复的