Javascript 如何计算第4年的总和
我已经创建了计算彼此之间成本的总和,但现在我需要计算全年的所有预算总和。 我已经试过了,但这不起作用,它显示我没有定义 Costs是一个接口,它具有一个创建日期类型的变量,以及类型number的变量Costs,以及发送到数组的计划成本的实际成本id,列出了实际成本。 那么如何计算从1月1日到12月31日的所有金额呢 在下面,您可以找到我的每项成本和总成本的总和代码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
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);