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

Grouping data by specific field from json then create element

本文关键字:数据 然后 元素 创建 字段 json 根据      更新时间:2023-09-26

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

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 nj -3 NJ-4
bma -1 CT - 4
C NJ-5

到目前为止,我的循环正在创建组A和B,但没有创建组C。从ajax . .
  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>'
    }
}

我希望我正确理解了你的问题。我会这样写:

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

最后,你将得到一个关联数组groups,其中包含所有由它们的groupID

索引的组

则得到一组(即a)的所有元素

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