Javascript 将对象循环到另一个对象/数组中

Javascript 将对象循环到另一个对象/数组中,javascript,jquery,arrays,json,object,Javascript,Jquery,Arrays,Json,Object,通过一个JSON调用,我得到了这个JSON对象: [ { "feeding_id": 14, "supp_name": "Test 1", "supp_weight": 20000, }, { "feeding_id": 14, "supp_name": "Test 2", "supp_weight": 1000, }, { "feeding_i

通过一个JSON调用,我得到了这个JSON对象:

[
    {
        "feeding_id": 14,
        "supp_name": "Test 1",
        "supp_weight": 20000,
    },
    {
        "feeding_id": 14,
        "supp_name": "Test 2",
        "supp_weight": 1000,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 1",
        "supp_weight": 4664,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 2",
        "supp_weight": 2332,
    }
]
我试图实现的是创建一个如下表:

______________________
| 14 | Test 1 | 20000 |
|    | Test 2 |  1000 |
|____|________|_______|
| 12 | Test 1 |  4664 |
|    | Test 2 |  2332 |
|____|________|_______|
我更喜欢PHP。因此,我尝试循环该对象并将其放入一个新的对象/数组(在PHP中,
$Array[]=Array(…)
)。但我无法在Javascript/jQuery中完成


有人能在路上帮我吗?

假设
supp\u name
在每个
feed\u id
中是唯一的,您可以使用以下代码(
jsonData
表示您的原始JSON数组):


假设
supp\u name
根据
feeding\u id
是唯一的,您可以使用以下代码(
jsonData
表示原始JSON数组):


您可以通过以下逻辑实现这一点

var arr = [
    {
        "feeding_id": 14,
        "supp_name": "Test 1",
        "supp_weight": 20000,
    },
    {
        "feeding_id": 14,
        "supp_name": "Test 2",
        "supp_weight": 1000,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 1",
        "supp_weight": 4664,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 2",
        "supp_weight": 2332,
    }
];


var obj = {};

// Creating group by feeding_id
for (var i = 0; i < arr.length; i++) {
    var item = arr[i];
    var id = item.feeding_id;
  var resp = {};  
  if(obj[id] === undefined) {
    resp = {
      "supp_name" : [item.supp_name],
      "supp_weight" : [item.supp_weight]
    }

  } else {
       resp = obj[id];
       resp.supp_name.push(item.supp_name);
       resp.supp_weight.push(item.supp_weight);

  }
  obj[id] = resp;

}

// Iterating over feeding_id map
for(var key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key);
      console.log(obj[key].supp_name);
      console.log(obj[key].supp_weight);
    }
}
var-arr=[
{
“喂食标识”:14,
“供应商名称”:“测试1”,
“支撑重量”:20000,
},
{
“喂食标识”:14,
“供应商名称”:“测试2”,
“支撑重量”:1000,
},
{
“喂食标识”:12,
“供应商名称”:“测试1”,
“支撑重量”:4664,
},
{
“喂食标识”:12,
“供应商名称”:“测试2”,
“支撑重量”:2332,
}
];
var obj={};
//通过输入组id创建组
对于(变量i=0;i

作为参考-

您可以通过以下逻辑实现这一点

var arr = [
    {
        "feeding_id": 14,
        "supp_name": "Test 1",
        "supp_weight": 20000,
    },
    {
        "feeding_id": 14,
        "supp_name": "Test 2",
        "supp_weight": 1000,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 1",
        "supp_weight": 4664,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 2",
        "supp_weight": 2332,
    }
];


var obj = {};

// Creating group by feeding_id
for (var i = 0; i < arr.length; i++) {
    var item = arr[i];
    var id = item.feeding_id;
  var resp = {};  
  if(obj[id] === undefined) {
    resp = {
      "supp_name" : [item.supp_name],
      "supp_weight" : [item.supp_weight]
    }

  } else {
       resp = obj[id];
       resp.supp_name.push(item.supp_name);
       resp.supp_weight.push(item.supp_weight);

  }
  obj[id] = resp;

}

// Iterating over feeding_id map
for(var key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key);
      console.log(obj[key].supp_name);
      console.log(obj[key].supp_weight);
    }
}
var-arr=[
{
“喂食标识”:14,
“供应商名称”:“测试1”,
“支撑重量”:20000,
},
{
“喂食标识”:14,
“供应商名称”:“测试2”,
“支撑重量”:1000,
},
{
“喂食标识”:12,
“供应商名称”:“测试1”,
“支撑重量”:4664,
},
{
“喂食标识”:12,
“供应商名称”:“测试2”,
“支撑重量”:2332,
}
];
var obj={};
//通过输入组id创建组
对于(变量i=0;i
供参考-

工作小提琴,以便您可以看到数据格式的变化

工作小提琴,以便您可以看到数据格式的变化

obj=[{
“喂食标识”:14,
“供应商名称”:“测试1”,
“支撑重量”:20000,
}, {
“喂食标识”:14,
“供应商名称”:“测试2”,
“支撑重量”:1000,
}, {
“喂食标识”:12,
“供应商名称”:“测试1”,
“支撑重量”:4664,
}, {
“喂食标识”:12,
“供应商名称”:“测试2”,
“支撑重量”:2332,
}];
$('#content')。追加($(“”);
$.each(对象、功能(i、eachVal){
if($('tr#feeding"+eachVal.feeding(id).length==0){
var$html=$(“”{
'id':'feeding_'+eachVal.feeding_id,
});
$html.append($(“”,{'text':eachVal.feeding_id}));
$html.append($(“”,{'text':eachVal.supp_name}));
$html.append($(“”,{'text':eachVal.supp_name}));
$('content').find('table').append($html);
}否则{
var nameRow=$('tr#feeding'+eachVal.feeding_id).find('td').eq(1);
var weightRow=$('tr#feeding"+eachVal.feeding)id.find('td').eq(2);
html(nameRow.html()+“
”+eachVal.supp\u名称) html(weightRow.html()+“
”+eachVal.supp\u weight) } });
td{
垂直对齐:顶部;
}
表,th,td{
边框:1px纯黑;
}

obj=[{
“喂食标识”:14,
“供应商名称”:“测试1”,
“支撑重量”:20000,
}, {
“喂食标识”:14,
“供应商名称”:“测试2”,
“支撑重量”:1000,
}, {
“喂食标识”:12,
“供应商名称”:“测试1”,
“支撑重量”:4664,
}, {
“喂食标识”:12,
“供应商名称”:“测试2”,
“支撑重量”:2332,
}];
$('#content')。追加($(“”);
$.each(对象、功能(i、eachVal){
if($('tr#feeding"+eachVal.feeding(id).length==0){
var$html=$(“”{
'id':'feeding_'+eachVal.feeding_id,
});
$html.append($(“”,{'text':eachVal.feeding_id}));
$html.append($(“”,{'text':eachVal.supp_name}));
$html.append($(“”,{'text':eachVal.supp_name}));
$('content').find('table').append($html);
}否则{
var nameRow=$('tr#feeding'+eachVal.feeding_id).find('td').eq(1);
var weightRow=$('tr#feeding"+eachVal.feeding)id.find('td').eq(2);
html(nameRow.html()+“
”+eachVal.supp\u名称) html(weightRow.html()+“
”+eachVal.supp\u weight) } });
td{
垂直对齐:顶部;
}
表,th,td{
边框:1px纯黑;
}

让我们假设上面的json数据位于一个名为data的变量中。首先,我们可以将json数据数组转换为可用于创建表的不同对象。然后使用该对象创建表

var obj = {};
for(var i=0;i<data.length;i++){
    var test = obj[data[i]["feeding_id"]];        
    if(!test){
        obj[data[i]["feeding_id"]] = [data[i]];            
    }
    else{
        obj[data[i]["feeding_id"]].push(data[i]);
    }
}
for(key in obj){          
    for(var j= 0;j<obj[key].length;j++){
        var s = $('<tr></tr>'); 
        if(j == 0){
            s.prepend('<td rowspan="'+obj[key].length+'">'+key+'</td>');
        }                
        s.append('<td>'+obj[key][j]["supp_name"]+'</td>');
        s.append('<td>'+obj[key][j]["supp_weight"]+'</td>');
        $('#test1').append(s);
    }



};
在此示例中,table1指的是该表的id

var obj = {};
for(var i=0;i<data.length;i++){
    var test = obj[data[i]["feeding_id"]];        
    if(!test){
        obj[data[i]["feeding_id"]] = [data[i]];            
    }
    else{
        obj[data[i]["feeding_id"]].push(data[i]);
    }
}
for(key in obj){          
    for(var j= 0;j<obj[key].length;j++){
        var s = $('<tr></tr>'); 
        if(j == 0){
            s.prepend('<td rowspan="'+obj[key].length+'">'+key+'</td>');
        }                
        s.append('<td>'+obj[key][j]["supp_name"]+'</td>');
        s.append('<td>'+obj[key][j]["supp_weight"]+'</td>');
        $('#test1').append(s);
    }



};
var obj={};

对于(var i=0;i让我们假设上面的json数据是