Javascript Null进入最终对象

Javascript Null进入最终对象,javascript,json,Javascript,Json,如果json对象orderData具有相同的order_id,我将聚合它们。在最终的对象ordernewdata中,null出现在其中的第二个索引中。是否在新数组中推送一个空对象。我缺少什么 var ordersData={ "orders":[ { "order_id": 1, "user_id": 294, "amount": 500, "discount": 100, "created_at": "2016-11-07

如果json对象orderData具有相同的order_id,我将聚合它们。在最终的对象ordernewdata中,null出现在其中的第二个索引中。是否在新数组中推送一个空对象。我缺少什么

var ordersData={
  "orders":[
    {
      "order_id": 1,
      "user_id": 294,
      "amount": 500,
      "discount": 100,
      "created_at": "2016-11-07T07:36:46.000Z",
      "item_name": "Veg Manchurian Dry",
      "item_id": 1
    },
    {
      "order_id": 1,
      "user_id": 294,
      "amount": 500,
      "discount": 100,
      "created_at": "2016-11-07T07:36:46.000Z",
      "item_name": "Veg Chopsuey",
      "item_id": 2
    },
      {
      "order_id": 2,
      "user_id": 294,
      "amount": 500,
      "discount": 100,
      "created_at": "2016-11-07T07:38:42.000Z",
      "item_name": "Veg Chopsuey",
      "item_id": 2
    },


  ]
}

  var ordersnewdata ={
    "orders":[
    {
      "order_id": 1,
      "user_id": 1,
      "amount": 1,
      "discount": 1,
      "created_at": "",
      "items":[]
    }
    ]
  };


      var i=0;  
     for(k=i+1;k<ordersData.orders.length;k++){

        if(ordersData.orders[i].order_id==ordersData.orders[k].order_id){
          var item_name = ordersData.orders[k].item_name;
          var item_id   = ordersData.orders[k].item_id;
          var obj       = {item_name:item_name,item_id:item_id};
          ordersnewdata.orders[i].items.push(obj);                
       }

     else{

      var orders={
        order_id    : ordersData.orders[k].order_id,
        user_id     : ordersData.orders[k].user_id,
        amount      : ordersData.orders[k].amount_id,
        discount    : ordersData.orders[k].discount_id,
        created_at  : ordersData.orders[k].created_at,
        items       : {item_name:ordersData.orders[k].item_name,item_id:ordersData.orders[k].item_id},
      };    
      ordersnewdata.orders[k]=orders;
     }

   }


console.log(JSON.stringify(ordersnewdata));
var ordersData={
“命令”:[
{
“订单id”:1,
“用户id”:294,
“金额”:500,
“折扣”:100,
“创建时间”:“2016-11-07T07:36:46.000Z”,
“项目名称”:“蔬菜满洲里干”,
“项目id”:1
},
{
“订单id”:1,
“用户id”:294,
“金额”:500,
“折扣”:100,
“创建时间”:“2016-11-07T07:36:46.000Z”,
“项目名称”:“蔬菜排骨”,
“项目id”:2
},
{
“订单id”:2,
“用户id”:294,
“金额”:500,
“折扣”:100,
“创建时间”:“2016-11-07T07:38:42.000Z”,
“项目名称”:“蔬菜排骨”,
“项目id”:2
},
]
}
var ordersnewdata={
“命令”:[
{
“订单id”:1,
“用户id”:1,
“金额”:1,
“折扣”:1,
“在以下位置创建”:”,
“项目”:[]
}
]
};
var i=0;
for(k=i+1;k在for循环中

k=1时,它进入if语句。当k=2时,它进入else分支,换句话说,
ordersnewdata.orders[2]=orders
以适应您的情况。所以我们只是忘了计算
ordersnewdata.orders[1]
。这就是为什么在
ordernewdata.orders
中会出现
null

为了防止添加
null
,您可以使用
ordersnewdata.orders.push(orders)
插入新订单。

希望这有帮助