2016-10-17 5 views
-1

を作成すると、データをグループ化して要素を作成しています。しかし、最後のグループがありません。私のループは悪いと思う。jsonの特定のフィールドでデータをグループ化し、次に要素

data: 
     [ 
     {"GROUPID":"A","QTY":3,"STORE":"NYC"}, 
     {"GROUPID":"A","QTY":4,"STORE":"CT"}, 
     {"GROUPID":"B","QTY":2,"STORE":"NJ"}, 
     {"GROUPID":"B","QTY":5,"STORE":"NJ"}, 
     {"GROUPID":"C","QTY":1,"STORE":"MA"} 
     ] 

ので、私のグループは、NYC-3 NJ-4
BのMA-1 CT

ようになる - これまで私のループグループを作成している4
C NJ-5

AとBが、私は正しくウント持っていると思っていグループC. ..fromアヤックス

success: function(msg) { 
var c = jQuery.parseJSON(msg.d); 
var myGroupid = c[0].GROUPID; 
var mList = ""; 
var sum = ""; 

for (var i = 0; i < c.length; i++) { 
    currentGroup = c[i].GROUPID; 
    if ((currentGroup !== myGroupid) { 
     //compare if current record's group id is different than previous record. 
     //if so, then means a new group. Send to plugin. 


     //call groupPlugin(myGroupid,mList) 

    } 
    mList += '<li' 
    " data-group=" ' + c[i].GROUPID + '" data-store="' + c[i].STORE +'"</li>' 

    } 
} 
+0

コードを正しく均等にインデントしてください。それはあなたと他のすべての人が問題を診断するのに役立ちます。 –

+0

@MikeC、チップをありがとう。私は少しきれいにしようとした。私のループは各行を反復しており、基本的に現在のGroupIDと最後のGroupIDを比較しています。異なる場合は、グループを作成して行を追加します。ただし、最後の行のグループを作成していません。 – causita

答えて

0

を作成されていませんあなたの質問を訂正しました。 私はこのように行くだろう:あなたはグループのすべての要素を取得するには、その後彼らのgroupID

によってインデックスを作成したすべてのグループ(すなわちA)

を含む連想配列 groupsを持っています最後に

groups = []; 
for (var i = 0; i < c.length; i++) { 
    var groupID = c[i].GROUPID; 
    if(groups[groupID]=="undefiend"){ 
     groups[groupID]=[]; 
    } 
    groups[c[i].GROUPID].append(c[i]); 
} 

var group = groups["A"]; 
for (i=0;i<group.length;i++){ 
    console.log(group[i].STORE;  
} 
+0

あなたの答えに感謝しますが、私はgroupidを取得する方法を知っていますが、どうすれば子供を得ることができますか?最初にグループ配列を作成してから、その配列をループして子を見つける必要はありますか? – causita

関連する問題