Время форматирования, сумма в Javascript - PullRequest
0 голосов
/ 11 мая 2018

Мои данные возвращаются таким образом. Мне нужно вернуть все значения в списке, убедившись, что формат времени и сумма тарифа исправлены, как я объяснил. Я хочу удалить запятую в плате за проезд, а также AM & PM при отъезде и прибытии. Спасибо заранее. Так как есть около 3 кодов полета и всего вместе 18 тарифов.

Возвращенный ответ.

[ { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'T Class',
    fare: '4,000',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'B Class',
    fare: '5,900',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'I Class',
    fare: '6,600',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'H Class',
    fare: '7,500',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'H Class',
    fare: '7,500',
    baggage: '20' } ]

Ожидаемый результат:

[ { flightCode: 'SHA735',
    departure: '01:30',
    arrival: '01:55',
    fareCode: 'T Class',
    fare: '4000',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30',
    arrival: '01:55',
    fareCode: 'S Class',
    fare: '5000',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30',
    arrival: '01:55',
    fareCode: 'E Class',
    fare: '5300',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30',
    arrival: '01:55',
    fareCode: 'B Class',
    fare: '5900',
    baggage: '20' }
]

Мой код Javascript ниже.

 const $ = cheerio.load(html);
        const format = {
             klasses: new Array(), 
        }
        const result = [];

        const flights = $('.flight-result > .tbody').find('.no-of-flights').toArray();

        flights.forEach(function(flight, _id) {

            result[_id] = Object.assign({},format);
            const flightCode = $(flight).find('p.font-reg.redcolor').contents().filter(function(){
                return this.type === 'text';
            }).text().trim();
            const times = $(flight).find('p.font-reg.redcolor').find('small').html().match(/\d\d:\d\d [AP]M/g);
            const flightClassContainer = $(flight).find('.flightclasscontainer').toArray();

            flightClassContainer.forEach((flightClass, __id) => {
                result[_id].klasses[__id]   = {

                    flightCode:$(flight).find('p.font-reg.redcolor').contents().filter(function () {
                        return this.type === 'text';
                    }).text().trim(),
                    departure: times[0],
                    arrival: times[1],
                    fareCode: $(flightClass).find('.class').text(),
                    fare: $(flightClass).find('.price').text(),
                    baggage: '20'
                 }
            })
        });

        let items = [].concat(...result.map(o => o.klasses));
         console.log(items);
        return items;

1 Ответ

0 голосов
/ 11 мая 2018

Используйте split(' ')[0] для удаления параметра времени AM/PM и replace(',','') для замены запятой в тарифе.

var flights = [ { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'T Class',
    fare: '4,000',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'B Class',
    fare: '5,900',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'I Class',
    fare: '6,600',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'H Class',
    fare: '7,500',
    baggage: '20' },
  { flightCode: 'SHA735',
    departure: '01:30 PM',
    arrival: '01:55 PM',
    fareCode: 'H Class',
    fare: '7,500',
    baggage: '20' } ];

flights.map((flight) => {
  flight.departure = flight.departure.split(' ')[0];
  flight.arrival = flight.arrival.split(' ')[0];
  flight.fare = flight.fare.replace(',','');
});
console.log(flights);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...