如何匹配不同数组内对象属性 实现航班与机场数据关联
实现方案
核心逻辑
利用键值对映射降低查找复杂度,分两步完成匹配:
- 先将机场API返回的数组结构转换为「机场ID为键、机场完整信息为值」的映射表,单次遍历即可完成构造,后续查找时间复杂度为O(1)
- 遍历航班API返回的每一条记录,直接通过出发/到达机场ID从映射表中取出对应机场信息,补充到航班数据中即可
代码示例(JavaScript)
// 步骤1:构造机场ID映射表 const airportData = 机场API接口返回的data字段; const airportMap = {}; airportData.forEach(airport => { airportMap[airport.id] = airport; }); // 步骤2:匹配航班与机场信息 const flightData = 航班API接口返回的data字段; const result = flightData.map(flight => { return { // 保留原有航班所有字段 ...flight, // 补充出发机场完整信息 departureAirport: airportMap[flight.departureAirportId], // 补充到达机场完整信息 arrivalAirport: airportMap[flight.arrivalAirportId] } });
补充说明
- 其他编程语言实现逻辑完全一致,先做映射再查表即可
- 如需处理ID不存在的边界情况,只需在取映射值时增加非空判断,返回自定义的占位信息即可
内容的提问来源于stack exchange,提问作者Andrea D_
相关产品推荐
相关产品推荐

