这就是我正在尝试做的事情:
我有一个 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>
我希望能够计算出 John 出现了 2 次,Stefany 出现了 1 次,Steven 出现了 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);
}
});
});
最佳答案
var results = {
data: {
_embedded: {
media: [{
_embedded: {
person: {name : 'John'}
}
},
{
_embedded: {
person: {name : 'John'}
}
},
{
_embedded: {
person: {name : 'Stefany'}
}
},
{
_embedded: {
person: {name : 'Steven'}
}
},
{
_embedded: {
person: {name : 'Steven'}
}
},{
_embedded: {
person: {name : 'Steven'}
}
}]
}
}
};
var allMedia = results.data._embedded.media;
var countNames = {};
var name;
for (var i = 0; i < allMedia.length; i++) {
var media1 = allMedia[i];
name = media1._embedded.person.name;
countNames[name] = countNames.hasOwnProperty(name) ? ++countNames[name] : 1;
}
console.log(countNames);
我们创建一个变量来计算名称频率,并为数组中的每个名称更新该变量
关于javascript - 如何计算某个名字出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28386450/