【问题标题】:convert to difficult array object in java script在javascript中转换为困难的数组对象
【发布时间】:2019-03-18 09:21:11
【问题描述】:

我想转换这个数组对象 - 值可能会改变,不要介意 我试过但没有用。 如何通过 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)

【问题讨论】:

  • SO 不适合 我想要。它是为了我被困在这里。请分享您的尝试
  • 第一个数组和第二个数组几乎没有任何匹配
  • 我修好了,现在你可以看到比赛了
  • datesarrays.map(...) 不会改变数组,而是返回一个新数组。所以你需要做datesarrays = datesarrays.map(...)

标签: javascript arrays object arrayobject


【解决方案1】:

这个怎么样?

            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

                });




            });

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2018-08-21
    • 1970-01-01
    相关资源
    最近更新 更多