在Javascript中格式化时间、数量
我的数据是这样返回的。我需要返回列表中的所有值,确保时间格式和票价金额如我所解释的那样得到纠正。我想删除票价中的逗号,以及出发和到达时的上午和下午。非常感谢。因为大约有3个航班代码,总共18个票价 返回的响应。在Javascript中格式化时间、数量,javascript,arrays,node.js,web-scraping,Javascript,Arrays,Node.js,Web Scraping,我的数据是这样返回的。我需要返回列表中的所有值,确保时间格式和票价金额如我所解释的那样得到纠正。我想删除票价中的逗号,以及出发和到达时的上午和下午。非常感谢。因为大约有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: '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' } ]
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;
预期结果:
[ { 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代码。
[ { 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' } ]
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;
使用split(“”)[0]
删除时间参数AM/PM
和replace(',','')
替换票价中的逗号
var flights=[{flightCode:'SHA735',
出发时间:下午1:30,
抵达时间:“下午1:55”,
票价代码:“T级”,
票价:'4000',
行李:“20”},
{飞行代码:'SHA735',
出发时间:下午1:30,
抵达时间:“下午1:55”,
票价代码:“B级”,
票价:'5900',
行李:“20”},
{飞行代码:'SHA735',
出发时间:下午1:30,
抵达时间:“下午1:55”,
票价代码:“I类”,
票价:'6600',
行李:“20”},
{飞行代码:'SHA735',
出发时间:下午1:30,
抵达时间:“下午1:55”,
票价代码:“H级”,
票价:'7500',
行李:“20”},
{飞行代码:'SHA735',
出发时间:下午1:30,
抵达时间:“下午1:55”,
票价代码:“H级”,
票价:'7500',
行李:'20'}];
航班地图((航班)=>{
航班起飞=航班起飞分割(“”)[0];
flight.arrival=flight.arrival.split(“”)[0];
flight.fare=flight.fare.replace(',','');
});
控制台日志(航班)
Jai Nepal,查看答案,然后告诉我这是否是您所期望的Flight.fare.replace不是函数。@AshokBhattarai您是否检查了代码段。它没有给出那个错误。对不起,我的代码中有一个错误。我早些时候换了逗号。感谢它的工作。@AshokBhattarai如果对您有帮助,您可以接受答案。因为所有数据都是使用此代码返回的,返回的数据并没有完全推送到我的数据库表中。我怎样才能做到这一点。以前对于另一家航空公司,这是这样做的。物品。推送({flightCode,出发,到达,票价,票价编码,行李,});});退货项目
将所有数据推送到db表中。