为什么表达式返回0?

时间:2017-02-16 13:58:00

标签: typescript lambda sum

我想计算对象中字段的总和。 如果使用过滤器c.SectionId === sectionId,则以下工作并返回正确的结果但是当计算对象中的字段的完整总和时,函数返回0。 对象中字段的所有值都是数字。我很有信心。我认为表达错误但不明白。

calculateGroupTotal1(sectionId: number): number {
    if (sectionId === -1)
        this.model.Register10Data.map(c => c.Num1).reduce((sum, current) => (+sum) + (+current));
    return this.model.Register10Data.map(c => c.SectionId === sectionId ? c.Num1 : 0).reduce((sum, current) => (+sum) + (+current));
}

Register10Data是一个包含下一个类型对象的数组:

class Register10SectionViewModel {
        public Register10Id: number;
        public Id: number;
        public SectionId: number;
        public SectionTitle: string;    
        public AssetType: string;
        public CauseDisposal: string;
        public Num1: number;
        public Num2: number;
        public Num3: number;
        public Num4: number;
    }

我哪里错了?

  

我在return ... {/ p>中错过了this.model.Register10Data.map(c => c.Num1).reduce((sum, current) => (+sum) + (+current));

0 个答案:

没有答案