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

Lin*_*TED 0 javascript arrays jquery 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_id": 12,
        "supp_name": "Test 1",
        "supp_weight": 4664,
    },
    {
        "feeding_id": 12,
        "supp_name": "Test 2",
        "supp_weight": 2332,
    }
]
Run Code Online (Sandbox Code Playgroud)

我想要实现的是创建一个这样的表:

______________________
| 14 | Test 1 | 20000 |
|    | Test 2 |  1000 |
|____|________|_______|
| 12 | Test 1 |  4664 |
|    | Test 2 |  2332 |
|____|________|_______|
Run Code Online (Sandbox Code Playgroud)

我更像是一个PHP家伙.所以我试图循环Object并将其放入一个新的Object/Array(在PHP中$array[] = array( ... )).但我无法在Javascript/jQuery中完成它.

有人可以在途中帮助我吗?

rpl*_*iko 5

假设supp_name每个都是唯一的feeding_id,您可以使用以下代码(jsonData表示您的原始JSON数组):

var result = jsonData.reduce( function(acc,rec) { 
  if (!(rec.feeding_id in acc)) acc[rec.feeding_id] = {};
  acc[rec.feeding_id][rec.supp_name]=rec.supp_weight; 
  return acc; 
  }, {} ); 
Run Code Online (Sandbox Code Playgroud)