计算我有多少次相同的单词

时间:2016-04-06 15:08:53

标签: javascript jquery

我的变量tag会返回以下4个不同值中的一个:assistancebugevolutionmaintenance。我想算一下我有多少次这些话。我想首先在控制台中显示每个项目的次数。我真的不知道该怎么做。这是我的代码:

function displaytickets(y){
    $.ajax({
        url: "https://cubber.zendesk.com/api/v2/users/" + y + "/tickets/requested.json?per_page=150",
        type: 'GET',
        dataType: 'json',
        cors: true ,
        contentType: 'application/json',
        secure: true,
        beforeSend: function(xhr) {
            xhr.setRequestHeader ("Authorization", "Basic " + btoa(""));
        },
        success: function(data) {
            var sortbydate = data.tickets.sort(function(a, b){ 
                return new Date(b.created_at) - new Date(a.created_at); 
            });
            var ids = $.map(data.tickets, function (data) { 
                return data.id;
            })
            localStorage.setItem("mesid", ids);

            for (i = 0; i < data.tickets.length; i++) {
                var myticket = data.tickets[i];
                var mydate = data.tickets[i].created_at;
                var created = moment(mydate).format("MM-DD-YY");
                var mytitle = data.tickets[i].subject;
                var description = data.tickets[i].description;
                var status = data.tickets[i].status;
                var tag = data.tickets[i].tags[0];
                console.log(tag);
                var myid = data.tickets[i].id;
            }

            var nbticket = data.tickets.length;
            $("#name").append('<h2 class="title">' + " " + nbticket + " ticket(s)" + '</h2>');
        },
    });
}

以下是我从console.log(tag)的控制台获得的内容:

enter image description here

3 个答案:

答案 0 :(得分:1)

您是否尝试在for loop中计算?

var maintenance_counter = 0;
 for (i = 0; i < data.tickets.length; i++) {
    var myticket = data.tickets[i];
    var mydate = data.tickets[i].created_at;
    var created = moment(mydate).format("MM-DD-YY");
    var mytitle = data.tickets[i].subject;
    var description = data.tickets[i].description;
    var status = data.tickets[i].status;
    var tag = data.tickets[i].tags[0];
    var myid = data.tickets[i].id;

    if( tag == "maintenance" ){
        maintenance_counter++;
    }

}

alert("Total maintenance occurrence:"+ maintenance_counter);

答案 1 :(得分:1)

您可以通过使用对象来存储由字符串本身键入的出现次数来实现此目的。试试这个:

var occurrences = {};

然后在success处理程序中,您可以在找到标签时添加和增加标记:

success: function(data) {
    // your code here...

    for (i = 0; i < data.tickets.length; i++) {
        // your code here...

        var tag = data.tickets[i].tags[0];
        if (occurrences.hasOwnProperty(tag)) {
            occurrences[tag]++;
        } else {
            occurrences[tag] = 1;
        }            
    }

    console.log(occurrences);
},

Working example

答案 2 :(得分:1)

创建一个对象来保存您的标记结果计数,类似于:

var tagCount = {};
for (i = 0; i < data.tickets.length; i++) {
  var tag = data.tickets[i].tags[0];
  if (tagCount[tag] === undefined) {
    tagCount[tag] = 1;
  } else {
    tagCount[tag] += 1;
  } 

}

console.log(tagCount);