如何在map函数中存储生成日期 解决endDate存为数组、forEach返回undefined问题
问题原因
- 你当前的代码直接将完整的
this.final日期数组赋值给了每个子项的endDate字段,所以所有子项的endDate都会存储数组格式的全量日期,而非对应单个日期。 forEach方法本身没有返回值,所以你尝试用forEach处理后直接赋值会得到undefined,需要生成新数组的场景优先使用map方法。
解决方案
如果this.final数组的顺序和underageChildInfo数组的顺序一一对应,直接使用map方法的第二个下标参数获取对应位置的单个日期即可:
console.log(this.final); // ["2033-05-19T20:00:00.000Z", "2025-11-04T11:26:28.316Z"] this.personalInfo = { personalInfoId: 0, underageChildInfo: this.data.underageChildInfo?.map((i, index) => ({ firstName: i.name, endDate: this.final[index] })) };
如果两个数组顺序不匹配,需要按关联规则匹配对应日期,可以用find方法做匹配:
underageChildInfo: this.data.underageChildInfo?.map((i) => ({ firstName: i.name, // 替换为你实际的匹配逻辑即可 endDate: this.final.find(date => /* 匹配规则 */) }))
内容的提问来源于stack exchange,提问作者user17205093
相关产品推荐
相关产品推荐

