2016-09-06 13 views
0

我不認爲這是重複的,因爲它處理的是具有多個記錄集的對象,雖然它非常相似,但我的需求需要更多的循環。無論哪種方式,我似乎無法讓它爲我工作。我只是在這裏學習,這對我來說太複雜了。我需要一些使用像這樣的對象的例子。我嘗試過使用一些類似的問題答案,但由於需要額外的循環級別而總是失敗。在多維數組中記錄重複值

我當前的代碼輸出一個簡單的無序列表:

for (i=0; i<data.length; i++) 
    if (data[i]['name']) 
     $("#output").append("<p>"+data[i]['entrynum']+data[i]['name']); 

我想是這樣的:

  • J0hn詹姆斯
  • Fr3d
  • 小號@米明智
  • Fr3d
  • Fr3d
  • 小號@米明智
  • Fr3d
  • 佛瑞德
  • 小號@米明智
  • 小號@米明智
  • 弗蘭克
  • 弗蘭克
  • 比爾
  • 弗蘭克
  • 比爾

以輸出一個列表,報告(優選以降序):

  • 5 Fr3d
  • 4 S @米明智
  • 3弗蘭克
  • 2比爾
  • 1個J0hn詹姆斯
+0

什麼是「多記錄JSON對象」?沒有「JSON對象」這樣的東西,JSON和JavaScript都沒有「記錄」或「記錄集」。 – 2016-09-06 18:33:36

+0

把你的問題的對象的例子。 – 2016-09-06 18:50:45

+0

可能是因爲你不是這類問題的最佳環境。我建議找一個按小時付費的諮詢服務,可以引導你完成所有的事情。 – 2016-09-06 19:04:07

回答

0

我已經學到了很多過夜! 這是我現在有:

//convert my multidimensional object into a simple list 
var clublist = []; 
for (i=0; i<data.length; i++) 
    if (data[i]['club']) 
     clublist.push(data[i]['club']); 

//counting, converted into object with occurrence & count 
var counts = {}; 
clublist.forEach(function(x) { counts[x] = (counts[x] || 0)+1; }); 

//converted into an array to be sorted 
var clubs = []; 
for (var temp in counts) 
    clubs.push([temp, counts[temp]]) 

//sorted array, descending 
clubs.sort(function(a, b) { return b[1] - a[1] }) 

//final output to page 
for (i=0; i<clubs.length; i++) 
    $("#output").append("<p>"+clubs[i][1]+" - "+clubs[i][0]); 

然而,這似乎是很多步驟......就使這個更緊湊的任何想法?