Javascript 如何计算名称出现的次数?
这就是我想做的: 我有一个API响应,其中包含一个带有名称的字段。我成功地获得了响应,但是使用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
<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;
}
}