我有以下猫鼬模式:
const SubmitDebtSchema = new Schema ({
creditCard: String,
balance: [{
balanceDate: Date,
newBalance: Number
}],
});
然后我有一个 React 前端,它启动一个空数组,并将响应设置为状态:
this.state = {
debts: []
}
然后我想过滤这个数组,如果creditCard === true,则将它们保存在变量中:
const creditCards = this.state.debts.filter((x) => { return x.creditCard === 'true' })
接下来,我映射数组中的每个剩余对象,取出它们的“平衡”对象,并将它们保存在另一个变量中:
const databaseBalance = creditCards.map(x => x.balance)
如果我控制台日志databaseBalance,则输出如下:
[[{_id:“5fc4aa02959b1409f2edab69”,newBalance:300,balanceDate:“2020-11-30T08:14:58.035Z”},{_id:“5fc51cb0bd4d9a0f6059bdbe”,newBalance:400,balanceDate:“2020-1 1-30T16:24 :14.390Z"}]]
然后我想做的是查看每个 BalanceDate 条目,将它们与某个月份进行比较(当前月份,然后当前月份 - 1,当前月份 - 2 等等),然后将它们存储在以下变量中:
const currentMonthValues = []
const currentMonthValuesMinusOne = []
const currentMonthValuesMinusTwo = []
作为参考,balanceDate 条目存储为日期对象,如下所示:
2020-11-30T08:14:58.035Z
存储到空的 currentMonthValue 中的条目必须是完整的对象 - 并且仍然包含“newBalance”数据等。
我的问题是...我该怎么做?我一直在绞尽脑汁思考如何做到这一点,但终其一生都无法弄清楚。
希望以上内容大家都清楚了,如有疑问请留言。
编辑:我现在有一个修复...我只需要将数字减少到总数。
这是工作函数:
const currentMonthCreditArray = creditCards.flatMap(x => x.balance.filter(y => (new Date(y.balanceDate).getMonth() === new Date().getMonth())))
我现在需要做的是从这个数组中取出每个“newBalance”,并将它们简化为一个整体数字。
我尝试过这样的事情......
const currentMonthFinal = currentMonthCreditArray.flatMap(x => x.balance.map(y => y.newBalance.reduce((a,b) => a + b, 0)))
但它出错了。有什么指点吗?
慕莱坞森
相关分类