我正在提高我的编码技能。我写了一个代码,它工作正常。但我认为它可以写得更好。以下是代码和一些解释,我使用以下代码来表示名为事务的数组setStateuseEffect(() => { TransactionService.getTransactions().then(data => { setTransactions(data.transactions); });}, []);我需要对事务数组中的对象求和,所以我写了这个代码。let a = transactions, total = 0;for (var i = 0; i < a.length; i++) { total += a[i].amount; console.log('total', total);};然后,通过像这样调用{total}来使用代码<h1>{total}</h1>然后我需要数组中最后一个对象中的属性值,所以我写了这个var array1 = transactions;var first = array1[array1.length - 1];console.log(first);const payment = { ...first };后来就这样用了<h1>{payment.amount}</h1>代码工作正常 请任何关于如何写得更好的想法。谢谢
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
这对我来说更好。谢谢
const lastTransaction = transactions[transactions.length - 1];
let lastPayment = ({ ...lastTransaction }).amount;
const today = new Date();
let lastMonth = today.getMonth() - 1;
let relevantYear = today.getYear();
let thisMonth = today.getMonth();
const lastMonthTransactions = transactions.filter(i => {
const date = new Date(i.date);
return date.getMonth() === lastMonth && date.getYear() === relevantYear;
}).reduce((prev, curr) => prev + parseFloat(curr.amount), 0)
添加回答
举报
0/150
提交
取消