我正在使用 react native 图表工具包,我希望能够在我的 react native 应用程序中显示支出图表。我正在使用 moment.js 和 moment-range
calendar.forEach((range) => {
const label = range.start.format('DD MMM')
loaded.labels.push(label);
const filtered = spendingData
.filter(item => range.contains(moment(item.timestamp)))
.reduce((a,b) => (a.spent || 0) + (b.spent || 0), 0);
loaded.data.push(filtered);
});
setGraph({...graph, labels: loaded.labels, data: loaded.data});
过滤器自身返回正确的项目,每次一个或多个对象落在范围内时,它应该传递给 reduce 函数以添加它们。
没有减少返回的对象(没有任何内容的日期意味着当天没有支出)这工作正常:
26 Dec
---------
02 Jan
---------
09 Jan
---------
16 Jan
Object {
"spent": 3.8,
"timestamp": 1642713860026,
}
Object {
"spent": 12,
"timestamp": 1642714020254,
}
---------
23 Jan
---------
30 Jan
Object {
"spent": 2.4,
"timestamp": 1643582338356,
}
Object {
"spent": 5.5,
"timestamp": 1643582748421,
}
减少item.spent
值后返回的数据,这就是问题所在:
0
0
0
12
0
5.5