2016-09-06 1 views
0

複数のレコードセットを持つオブジェクトを扱うため、これは重複しているとは思われませんが、非常によく似ていますが、私のニーズはより多くのループを必要とします。いずれにせよ、私はそれが私のために働くように見えることはできません。私はここで学んでいる、これは私にとっては複雑すぎる。このようなオブジェクトを使っていくつかの例が必要です。私はいくつかの同様の質問 - 回答を使用してみましたが、必要なループの余分なレベルのために常に失敗します。多目的配列の重複値をカウントする

私の現在のコードは、単純なソートされていないリストを出力します

  • J0hnジェームズ
  • Fr3d
  • Sの@ mのワイズ
  • Fr3d:私が欲しいもの

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

    のようなものです

  • fr3d
  • S @ mのワイズ
  • Fr3d
  • フレッド
  • S @ mのワイズ
  • S @ mのワイズ
  • フランク
  • フランク
  • ビル
  • フランク
  • ビル
01出力へ

リストは、(好ましくは順序DESCで)レポート:

  • 5 Fr3d
  • 4 Sする@ Mワイズ
  • 3フランク
  • 2ビル
  • 1つのJ0hnジェームズ
+0

「マルチレコードJSONオブジェクト」とは何ですか? "JSONオブジェクト"というものはなく、JSONもJavaScriptも "レコード"や "レコードセット"を持っていません。 –

+0

あなたの質問にオブジェクトの例を入れてください。 –

+0

おそらく、SOはあなたの質問のための最良の環境ではありません。私はすべてを通ってあなたを歩くことができる有料コンサルティングサービスを見つけることを提案したいと思います。 –

答えて

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]); 

をしかし、これはステップの多くのように思える...これはよりコンパクトになって上の任意のアイデアは?

関連する問題