2016-04-06 42 views
1

我的變量tag返回以下4個不同值之一:assistance,bug,evolutionmaintenance。我想統計我有多少次這些單詞。我想先顯示我的控制檯中每個項目有多少次。我真的不知道該怎麼做。這裏是我的代碼:計算我有多少次相同的單詞

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

+0

忘記關閉字符串:''Basic「+ btoa(」));'(這是爲什麼其餘的代碼是紅色的) – somethinghere

+0

不,我不會忘記我刪除它,因爲有我的用戶名和密碼連接到我的API – xenurs

+3

確實,但它有所作爲。我沒有說這是問題:) – somethinghere

回答

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

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); 
+0

那麼你的回答並不完全是我想要的但這是一個好開始:) – xenurs

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); 
相關問題