Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何计算第4年的总和_Javascript_Angular_Typescript_Observable - Fatal编程技术网

Javascript 如何计算第4年的总和

Javascript 如何计算第4年的总和,javascript,angular,typescript,observable,Javascript,Angular,Typescript,Observable,我已经创建了计算彼此之间成本的总和,但现在我需要计算全年的所有预算总和。 我已经试过了,但这不起作用,它显示我没有定义 Costs是一个接口,它具有一个创建日期类型的变量,以及类型number的变量Costs,以及发送到数组的计划成本的实际成本id,列出了实际成本。 那么如何计算从1月1日到12月31日的所有金额呢 在下面,您可以找到我的每项成本和总成本的总和代码 export interface TotalCosten { planned: number; actual: numb

我已经创建了计算彼此之间成本的总和,但现在我需要计算全年的所有预算总和。 我已经试过了,但这不起作用,它显示我没有定义

Costs是一个接口,它具有一个创建日期类型的变量,以及类型number的变量Costs,以及发送到数组的计划成本的实际成本id,列出了实际成本。 那么如何计算从1月1日到12月31日的所有金额呢 在下面,您可以找到我的每项成本和总成本的总和代码

  export interface TotalCosten {
  planned: number;
  actual: number;
}


export function emptyCosts(): Costs {
  return {
    id: '',
    created: new Date(),
    type: 0,
    costs: 0,
    reference: '',
    comment: ''
  };
}



export function getTotalYearCosts(valueItem: ValueItem, allCosts: Map<string, Costs>): TotalCosten {
const totalYearCosts = { planned: 0, actual: 0 };

const Q1 = new Date(2018, 11, 31);
const Q2 = new Date(2018, 0, 1);
  totalYearCosts.actual = valueItem.actualCostIds
.map(costId => allCosts.get(costId, emptyCosts()).costs)
.filter() //Here to make a filter for costs that are in the date range
.reduce((reduction, costs) => reduction + costs, 0);
  return totalYearCosts;
}
export interface ValueItem {
 plannedCostIds: string[];
  actualCostIds: string[];
}
导出接口总成本{
计划:数量;
实际:数字;
}
导出函数emptyCosts():成本{
返回{
id:“”,
已创建:新日期(),
类型:0,
费用:0,
引用:“”,
注释:“”
};
}
导出函数getTotalYearCosts(valueItem:valueItem,allCosts:Map):TotalCosten{
const totalYearCosts={计划:0,实际:0};
const Q1=新日期(2018年11月31日);
const Q2=新日期(2018年0月1日);
totalYearCosts.actual=valueItem.ActualStids
.map(costId=>allCosts.get(costId,emptyCosts()).costs)
.filter()//在此处对日期范围内的成本进行筛选
.减少((减少,成本)=>减少+成本,0);
返回总成本;
}
导出接口值项{
plannedCostIds:string[];
ActualStids:字符串[];
}

如果我正确理解您的英语,您可以扩展reduce函数来检查日期

那么,如何根据日期计算所有金额呢


我将编辑我的问题,以便更加理解,但我需要的是计算1月、2月和3月的金额,当我节省成本时,它有预算和日期,以便计算这三个月的所有金额。我编辑了这个问题,所以你想在.map和.reduce之间进行过滤?你写了一些代码,但是你能更明确地说明我要做什么,你会救我吗?
.reduce((reduction, costs) => {
    if (checkDate) {
        return reduction + costs
    } else {
        return 0
    }
}, 0);