猿问

有没有更好的方法来查找数组中对象的属性

我正在提高我的编码技能。我写了一个代码,它工作正常。但我认为它可以写得更好。


以下是代码和一些解释,


我使用以下代码来表示名为事务的数组setState


useEffect(() => {

  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>

代码工作正常 请任何关于如何写得更好的想法。谢谢


回首忆惘然
浏览 89回答 1
1回答

米琪卡哇伊

这对我来说更好。谢谢&nbsp; &nbsp;&nbsp;&nbsp; const lastTransaction = transactions[transactions.length - 1];&nbsp; let lastPayment = ({ ...lastTransaction }).amount;&nbsp; const today = new Date();&nbsp; let lastMonth = today.getMonth() - 1;&nbsp; let relevantYear = today.getYear();&nbsp; let thisMonth = today.getMonth();&nbsp; const lastMonthTransactions = transactions.filter(i => {&nbsp; const date = new Date(i.date);&nbsp; &nbsp; return date.getMonth() === lastMonth && date.getYear() === relevantYear;&nbsp; }).reduce((prev, curr) => prev + parseFloat(curr.amount), 0)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答