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-4B 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;
}