如何解决尝试使用 forEach() 从另一个对象数组创建新的对象数组时获得未定义打字稿
我正在尝试从对象数组创建一个新的对象数组。原始数组由 3 个 keyvalues 组成。日期、开始时间和结束时间。将被转换为一个新的对象数组,其中包含 startDate 和 endDate 的 2 个 keyvalues。
以下是我的尝试,但结果未定义。
sendScheduleForm() {
const dateArrForm = this.datetimeForm.value.datetime.forEach(
(session: any) => {
const schedule = {
startDate: new Date(session.date + ' ' + session.startTime)
.getTime()
.toString(),endDate: new Date(session.date + ' ' + session.endTime)
.getTime()
.toString(),};
// dateArrForm.push(schedule);
return schedule;
}
);
console.log(dateArrForm); // undefined
}
解决方法
您可以为此使用数组 map
sendScheduleForm() {
const dateArrForm = this.datetimeForm.value.datetime.map(
(session: any) => {
const schedule = {
startDate: new Date(session.date + ' ' + session.startTime)
.getTime()
.toString(),endDate: new Date(session.date + ' ' + session.endTime)
.getTime()
.toString(),};
// dateArrForm.push(schedule);
return schedule;
}
);
console.log(dateArrForm); // new list
}
,
我不知道您为什么尝试 dateArrForm.push 并对此发表评论。对我来说效果很好。
const dateArrForm = [];
this.datetimeForm.value.datetime.forEach(
(session: any) => {
const schedule = {
startDate: new Date(session.date + ' ' + session.startTime)
.getTime()
.toString(),endDate: new Date(session.date + ' ' + session.endTime)
.getTime()
.toString(),};
dateArrForm.push(schedule);
}
);
console.log(dateArrForm);
演示:https://stackblitz.com/edit/angular-ivy-ez7cod?file=src/app/app.component.ts
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。