Javascript 如何计算名称出现的次数?

Javascript 如何计算名称出现的次数?,javascript,jquery,count,Javascript,Jquery,Count,这就是我想做的: 我有一个API响应,其中包含一个带有名称的字段。我成功地获得了响应,但是使用JavaScript我想计算一个名字重复了多少次。例如: <span class="person_name">John</span> <span class="person_name">John</span> <span class="person_name">Stefany</span> <span class="perso

这就是我想做的:

我有一个API响应,其中包含一个带有名称的字段。我成功地获得了响应,但是使用JavaScript我想计算一个名字重复了多少次。例如:

<span class="person_name">John</span>
<span class="person_name">John</span>
<span class="person_name">Stefany</span>
<span class="person_name">Steven</span>
<span class="person_name">Steven</span>
约翰 约翰 斯蒂芬妮 史蒂文 史蒂文 我想数一数,约翰出现2次,斯蒂芬出现1次,史蒂文出现2次

到目前为止我试过什么

$(function () {
            $.ajax({
                url: "API_CALL",
                dataType: 'jsonp',
                success: function (results) {
                    var imagesArray = new Array();
                    var allMedia = results.data._embedded.media;
                    for (var i = 0; i < allMedia.length; i++) {
                        var media1 = allMedia[i];
                        var imagesHtml = "<div id='person_item'>";
                        imagesHtml += "<span class='person_name'>{0}
</span>".replace("{0}", media1._embedded.person.name);
                        imagesHtml += "</div>";
                        imagesArray.push(media1.images.square);

                        $("#list").append(imagesHtml);
                    }
                    var numItems = $('.person_name').length
    console.log(numItems);
                }

            });

});
$(函数(){
$.ajax({
url:“API_调用”,
数据类型:“jsonp”,
成功:功能(结果){
var imagesArray=新数组();
var allMedia=results.data.\u embedded.media;
对于(变量i=0;i
var结果={
数据:{
_嵌入式:{
媒体:[{
_嵌入式:{
人员:{姓名:'John'}
}
},
{
_嵌入式:{
人员:{姓名:'John'}
}
},
{
_嵌入式:{
人员:{姓名:'Stefany'}
}
},
{
_嵌入式:{
人员:{姓名:'Steven'}
}
},
{
_嵌入式:{
人员:{姓名:'Steven'}
}
},{
_嵌入式:{
人员:{姓名:'Steven'}
}
}]
}
}
};
var allMedia=results.data.\u embedded.media;
var countNames={};
变量名;
对于(变量i=0;i

我们创建了一个用于计算名称频率的变量,并为数组中的每个名称更新此变量

您可以使用类似的方法,希望这都是您想要的

var numItems = $('.person_name').length;
 var name = [];
 var occ =[];
 for(var i=0;i<numItems.length;i++)
 {
    if(occ[numItems[i].val())
    {
       occ[numItems[i]++;
    }
    else
    {
       name.push(numItems[i].val());
       occ[numItems[i].val()] = 1;
    }
 }
var numItems=$('.person_name').length;
变量名称=[];
var occ=[];

对于(var i=0;i您想要什么?您只需要有一个字符串,如“John Stefany Steven”有空格分隔的名称。在该字符串中每个名称的出现。你打算如何使用这些数据。有几种方法。正确的方法取决于什么样的数据结构最适合你如何使用它。例如:你只需要为一个单独的字符串输入数据,还是在@each#person中_项目是否要在每个名称旁边显示名称计数?或者…您将获得picture@MukeshAgarwal感谢您的回复。姓名以跨距表示。我刚刚更新了我的描述。@Charlie我要做的是计算一个人出现的次数,然后我想根据该人出现的次数从高到低排列姓名。有点像一个领导委员会。为了确认,您需要根据频率(发生率)强度对数据进行排序。然后将数据放到域中。谢谢。您能提供一个JSIDLE示例吗?当我使用此示例时,我得到以下错误:未捕获的语法错误:意外标记)谢谢,但是我怎样才能先显示出最多的人,然后再按降序显示其他人呢?
var numItems = $('.person_name').length;
 var name = [];
 var occ =[];
 for(var i=0;i<numItems.length;i++)
 {
    if(occ[numItems[i].val())
    {
       occ[numItems[i]++;
    }
    else
    {
       name.push(numItems[i].val());
       occ[numItems[i].val()] = 1;
    }
 }