使用JSON格式

时间:2018-04-07 18:35:56

标签: javascript arrays typescript

小任务,尝试过这么多我无法做到这一点。

export class EmployeeDetails {
        employee_id: number,
        employee_name: string,
        employee_startDate: string,
        employee_endDate: string,
        employee_startTime: string,
        employee_endTime: string,
        employee_city: string,
        employee_country: string,
        employee_phone: number,
        employee_email: string

    }

queryResponse = [
{ 
    startDate: '01/01/2001’, 
    endDate: '02/02/2002’ , 
    personDetails : [ 
     { id: 1, name: ‘mounika’, timeDetails: [{ startTime: ’9:00am’, endTime: ’4:00pm’, email: ‘mounika@gmail.com’, phone: ’9232323223’}, { startTime: ’10:00am’, endTime: ’5:00pm’, email: ‘mounika@gmail.com’, phone: ’9232323223’ }]}, 
     { id: 2, name: ‘ashish’, timeDetails: [{ startTime: ’10:00am’, endTime: ’6:00pm’, email: ‘ashish@gmail.com’, phone: ’93647626342’}, { startTime: ’11:00am’, endTime: ’7:00pm’, email: ‘ashish@gmail.com’, phone: ’93647626342’ }] } , 
     { id: 3, name: ‘sai’,  timeDetails: [{ startTime: ’7:00am’, endTime: ’3:00pm’, email: ‘sai@gmail.com’, phone: ’9746236547’}, { startTime: ’8:00am’, endTime: ’5:00pm’, email: ‘sai@gmail.com’, phone: ’9746236547’ }] }  ],   
    locationDetails : [{city: ‘Hyderabad’, country: ‘India’}, {city: ‘Chennai’, country: ‘India’}, {city: ‘Mumbai’, country: ‘India’} ]}

寻找这样的输出。并且响应是这样的更多对象的数组(我的意思是响应长度大于1)。如何通过多个响应获得以下输出?

 data : Array<EmployeeDetails> = [];
    data = [ 
    { employee_id: 1, employee_name: ‘mounika’, employee_startDate: '01/01/2001’, employee_endDate: '02/02/2002’ , employee_startTime: ’10:00am’, endTime: ’5:00pm’, employee_email: ‘mounika@gmail.com’, employee_phone: ’9232323223’, employee_city: ‘Mumbai’, employee_country: ‘India’},  
    { employee_id: 2, employee_name: ‘ashish’, employee_startDate: '01/01/2001’, employee_endDate: '02/02/2002’ , employee_startTime: ’11:00am’, employee_endTime: ’7:00pm’, employee_email: ‘ashish@gmail.com’, employee_phone: ’93647626342’, employee_city: ‘Mumbai’, employee_country: ‘India’},
    { employee_id: 3, employee_name: ‘sai’, employee_startDate: '01/01/2001’, employee_endDate: '02/02/2002’ , employee_startTime: ’8:00am’, employee_endTime: ’5:00pm’, employee_email: ‘sai@gmail.com’, employee_phone: ’9746236547’,employee_city: ‘Mumbai’, employee_country: ‘India’}
    ]

1 个答案:

答案 0 :(得分:2)

尝试在Array.prototype.map()

的帮助下使用new转换数组

&#13;
&#13;
var data = queryResponse.personDetails.map(info => {
  return {employee_id: info.id, employee_name: info.name}
});
&#13;
&#13;
&#13;

你可以转换其他类似的键。

如果你想添加国家和城市,你应该在地图&#34; id&#34;中使用第二个争论,例如:

&#13;
&#13;
var data = queryResponse.personDetails.map((info, id) => ({
      employee_id: info.id, 
      employee_name: info.name, 
      employee_city: queryResponse.locationDetails[id].city,       
      employee_country: queryResponse.locationDetails[id].country
    })
 );
&#13;
&#13;
&#13;