回首憶惘然
2022-08-18 10:49:47
我正在提高我的編碼技能。我寫了一個代碼,它工作正常。但我認(rèn)為它可以寫得更好。以下是代碼和一些解釋,我使用以下代碼來表示名為事務(wù)的數(shù)組setStateuseEffect(() => { TransactionService.getTransactions().then(data => { setTransactions(data.transactions); });}, []);我需要對事務(wù)數(shù)組中的對象求和,所以我寫了這個代碼。let a = transactions, total = 0;for (var i = 0; i < a.length; i++) { total += a[i].amount; console.log('total', total);};然后,通過像這樣調(diào)用{total}來使用代碼<h1>{total}</h1>然后我需要數(shù)組中最后一個對象中的屬性值,所以我寫了這個var array1 = transactions;var first = array1[array1.length - 1];console.log(first);const payment = { ...first };后來就這樣用了<h1>{payment.amount}</h1>代碼工作正常 請任何關(guān)于如何寫得更好的想法。謝謝
1 回答

米琪卡哇伊
TA貢獻(xiàn)1998條經(jīng)驗 獲得超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
提交
取消