在JS中格式化数据:移除AM/PM标识及金额逗号,返回指定数组格式
处理航班数据格式的解决方案
我来帮你搞定这个数据格式化的需求,用JavaScript就能轻松实现,下面是具体的步骤和代码示例:
核心思路
- 遍历原始数据中的每一组航班信息
- 对
departure和arrival字段,移除末尾的AM/PM标识 - 对
fare字段,去掉数值中的逗号分隔符 - 保留其他不需要修改的字段,最终返回格式化后的数组
代码实现
// 你的原始数据 const originalFlightData = [{"klasses":[{"flightCode":"SHA735","departure":"03:50 PM","arrival":"04:15 PM","fareCode":"T Class","fare":"4,000","baggage":"0"},{"flightCode":"SHA735","departure":"03:50 PM","arrival":"04:15 PM","fareCode":"S Class","fare":"5,000","baggage":"0"},{"flightCode":"SHA735","departure":"03:50 PM","arrival":"04:15 PM","fareCode":"E Class","fare":"5,300","baggage":"0"}]}]; // 定义格式化函数 const formatFlightData = (rawData) => { return rawData.map(group => { return { ...group, klasses: group.klasses.map(flight => { // 移除departure和arrival的AM/PM const cleanedDeparture = flight.departure.replace(/ (AM|PM)$/, ''); const cleanedArrival = flight.arrival.replace(/ (AM|PM)$/, ''); // 移除fare中的逗号,这里保留字符串类型,如需数字可转成parseInt/parseFloat const cleanedFare = flight.fare.replace(/,/g, ''); return { ...flight, departure: cleanedDeparture, arrival: cleanedArrival, fare: cleanedFare }; }) }; }); }; // 执行格式化并输出结果 const formattedData = formatFlightData(originalFlightData); console.log(formattedData);
代码说明
- 用
map方法遍历数组,属于纯函数操作,不会修改原始数据 - 正则表达式
/(AM|PM)$/精准匹配字段末尾的AM或PM,通过replace移除 fare字段用replace(/,/g, '')全局替换所有逗号,如果你需要数值类型的票价,可以把cleanedFare改成parseInt(flight.fare.replace(/,/g, ''), 10)- 展开运算符
...用来保留其他不需要修改的字段(比如flightCode、fareCode),避免重复写字段
格式化后的结果
[ { "klasses": [ { "flightCode": "SHA735", "departure": "03:50", "arrival": "04:15", "fareCode": "T Class", "fare": "4000", "baggage": "0" }, { "flightCode": "SHA735", "departure": "03:50", "arrival": "04:15", "fareCode": "S Class", "fare": "5000", "baggage": "0" }, { "flightCode": "SHA735", "departure": "03:50", "arrival": "04:15", "fareCode": "E Class", "fare": "5300", "baggage": "0" } ] } ]
内容的提问来源于stack exchange,提问作者user9663647
相关产品推荐
相关产品推荐

