You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular/TypeScript如何批量映射currentTerm数组返回处理后对象集合

解决方案

你只需要调整两处代码即可实现需求:

1. 遍历currentTerm数组调用映射方法

你原来的mapRent是为单个对象设计的处理逻辑,想要处理整个数组,直接用数组的map方法遍历每个元素调用即可,修改setRentSchedule里的调用逻辑:

// 把原来的这行
// let rentObject = this.mapRent(currentTerm);
// 替换为
let rentObject = currentTerm.map(item => this.mapRent(item));

这样返回的rentObject就是和currentTerm长度一致的对象数组,符合你预期的返回格式。

2. 优化mapRent的空日期兼容逻辑

你给出的期望结果里,第一条Current Term的monthsInPeriod和rentInPeriod为null,是因为这条数据的startDate是空字符串,转成日期对象是无效值,直接计算会得到NaN,所以补充下日期合法性判断:

mapRent(scheduleData: any):any{
    let startDate = typeof scheduleData.startDate === 'string' ? new Date(scheduleData.startDate):scheduleData.startDate;
    const endDate = typeof scheduleData.endDate === 'string' ? new Date(scheduleData.endDate):scheduleData.endDate;
    // 新增日期合法性判断
    const isDateValid = !isNaN(startDate.valueOf()) && !isNaN(endDate.valueOf());
    return { 
        description: scheduleData.description,
        monthlyRent: scheduleData.annualRent / 12,
        monthsInPeriod: isDateValid ? (this.Days360(startDate, endDate) / 360) * 12 : null,
        rentInPeriod: isDateValid ? (scheduleData.annualRent / 12) * (this.Days360(startDate, endDate) / 360) * 12 : null,
    }
}

调整后就能完全匹配你给出的期望返回结果。

内容的提问来源于stack exchange,提问作者Ananya Amar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:15:05