Javascript 根据json中的特定字段对数据进行分组,然后创建元素

Javascript 根据json中的特定字段对数据进行分组,然后创建元素,javascript,jquery,json,Javascript,Jquery,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"}, {"

我下面的代码将数据分组并创建元素。然而,他错过了最后一组。我觉得我的循环不好

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"}
        ]
所以我的分组是这样的

A纽约-3 NJ-4
B MA-1 CT-4
C NJ-5

到目前为止,我的循环正在创建A组和B组,但没有创建C组。 …来自阿贾克斯

  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>'

    }
}
success:函数(msg){
var c=jQuery.parseJSON(msg.d);
var myGroupid=c[0].GROUPID;
var mList=“”;
var sum=“”;
对于(变量i=0;i我希望能正确理解你的问题。
我想这样说:

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

谢谢你的回答,但我知道如何获取groupid,但如何获取子对象?我是否需要先创建组数组,然后循环该数组以查找子对象?请正确且统一地缩进代码。这将帮助你和其他人诊断问题。@MikeC,谢谢你的提示。我尝试过清理一下。我的循环是iterating每一行,并基本上比较当前GroupID与最后一行。如果不同,则创建一个组并追加行。但是,不为最后一行创建一个组。
var group = groups["A"];
for (i=0;i<group.length;i++){
    console.log(group[i].STORE;    
}