0

我有一个模型数组。该模型的每个对象都有另一个模型的数组。我想从嵌套数组中添加所有相应的数字变量。我的一段代码如下

模型

TimesheetLogged.ts

export interface TimesheetLogged {
    ProjectId: string,   
    MondayHours: number,
    TuesdayHours: number,
    WednesdayHours: number,
    ThursdayHours: number,
    FridayHours: number,
    SaturdayHours: number,
    SundayHours: number   
}

项目.ts

import { TimesheetLogged } from "./TimesheetLogged";

export interface Project {
    ProjectId: number;  
    TimeLoggedHours: TimesheetLogged[];   
}

来自组件的一段代码

public Projects: Project[];
//Get projects data from database and subscribe to Projects object  Successfully

let chartData: Array<number> = [];
    let mon:number= 0;
    let tue:number= 0;
    let wed:number= 0;
    let thu:number= 0;
    let fri:number= 0;
    let sat:number= 0;
    let sun:number= 0;

    this.Projects.forEach((empHours) => {
        empHours.TimeLoggedHours.forEach((hours) => {
            a => {
                mon += a.MondayHours;
                tue += a.TuesdayHours;
                wed += a.WednesdayHours;
                thu += a.ThursdayHours;
                fri += a.FridayHours;
                sat += a.SaturdayHours;
                sun += a.SundayHours;
            }  
        });            
    });
    chartData.push(mon);
    chartData.push(tue);
    chartData.push(wed);
    chartData.push(thu);
    chartData.push(fri);
    chartData.push(sat);
    chartData.push(sun); 

但是我得到所有数字变量的总和为

[对象数组][0, 0, 0, 0, 0, 0, 0]

此代码中需要的任何更新。欢迎任何其他更简单的解决方案。

4

1 回答 1

0

删除a =>lambda 并改用mon += hours.MondayHoursetc.。

否则,在您的第二个中,forEach您只需创建一堆 lambda 函数而不是更改montue

this.Projects.forEach(empHours => {
        empHours.TimeLoggedHours.forEach(hours => {
                mon += hours.MondayHours;
                tue += hours.TuesdayHours;
                wed += hours.WednesdayHours;
                thu += hours.ThursdayHours;
                fri += hours.FridayHours;
                sat += hours.SaturdayHours;
                sun += hours.SundayHours;
        });            
    });
于 2018-11-27T07:09:33.387 回答