在Java脚本中转换为困难的数组对象

时间:2019-03-18 09:21:12

标签: javascript arrays object arrayobject

我想转换此数组对象-值可能更改了,不要介意 我试过了,但是没用。 如何通过JavaScript将其转换为以下内容?

var msg = [{
    room_no: 'Room #1',
    invoice: '#001',
    check_in: '2019-02-20T06:45:00.000Z',
    check_out: '2019-02-25T05:30:00.000Z',
    booking_type: '3',
    booking_status: 'checked-out'
  },
  {
    room_no: 'Room #2',
    invoice: '#002',
    check_in: '2019-03-07T07:45:00.000Z',
    check_out: '2019-03-09T06:30:00.000Z',
    booking_type: '2',
    booking_status: 'Stay-in'
  },
   {
    room_no: 'Room #2',
    invoice: '#002',
    check_in: '2019-03-20T07:45:00.000Z',
    check_out: '2019-03-22T06:30:00.000Z',
    booking_type: '2',
    booking_status: 'Stay-in'
  }
]

// into this array object 

[{
  "Room #1": [{
    "2015/02/20": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
    "2015/02/21": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
   "2015/02/22": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
    "2015/02/23": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/02/24": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/02/25": [{
      "Invoice": "#001",
      "BookingType": "2",
      "Status": 3
    }],
  }],
  "Room #2": [{
     "2015/03/07": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/03/08": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }],
    "2015/03/09": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/03/20": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/03/21": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }],
     "2015/03/22": [{
      "Invoice": "#002",
      "BookingType": "2",
      "Status": 3
    }]


}]
}]

我想转换此数组对象-值可能更改了,不要介意 我试过了,但是没用。 如何通过JavaScript将其转换为以下内容?

我已经尝试过这种方法,但是没有用

const moment = require('moment');
const    MomentRange = require("moment-range"),
Moment = MomentRange.extendMoment(moment);

 var object3={}

            msg.map((obj, i) => {

                let 

                    range = Moment().range(obj.check_in, obj.check_out), 
                    datesarray = Array.from(range.by("days"));
                    // console.log("range",range);
                    datesarray.map( m => {
                        // object3[m.format("YYYY/MM/DD")]=  [{"Invoice":obj.invoice,"BookingType":obj.booking_type,"Status":obj.booking_status}]
                        object3[m.format("YYYY/MM/DD")]= [{"Invoice":obj.invoice,"BookingType":obj.booking_type,"Status":obj.booking_status}]
                        //  [{"Invoice":obj.invoice,"BookingType":obj.booking_type,"Status":obj.booking_status}]
                        console.log("day",m.format("YYYY/MM/DD"),obj.invoice,"BookingType",obj.booking_type,"Status",obj.booking_status)
                });
                // object2[obj.room_no]=["dd"]
                // console.log("range",obj.room_no)

                // object1[obj.room_no]=[object2]

            });
            // console.log("object 2",object2)

            // console.log("obj",object3)

1 个答案:

答案 0 :(得分:0)

怎么样?

            var object2 = {};
            var object3=[]

            msg.map((obj, i) => {



                let  range = Moment().range(obj.check_in, obj.check_out), 
                    datesarray = Array.from(range.by("days"));
                     object2={"Inovice":obj.room_no ,"BookingType":obj.booking_type,"Status":obj.booking_status}
                     var dates = [];

                    datesarray.map(( m ,k) => {
                            dates.push({
                                [m.format("YYYY/MM/DD")]: [object2]

                            });




                });
                object3.push({
                    [obj.room_no]: dates

                });




            });