I am using graphs, so whenever I choose to show data according to the months, I will have to show data for the each month, I have fields like totalAmount, paidAmount , I should sum data for that month.
const myArray = [ { "id": 9, "userId": null, "invoiceNumber": "biscuitInvoice", "billedBy": 1, "billedTo": 2, "addGst": false, "invoiceDate": "2021-05-08T12:05:00", "dueDate": "2021-05-21T12:03:00", "totalAmount": 11.8, "discountSymbol": null, "discountPercent": null, "subTotal": null, "notes": null, "signature": null, "reachMail": "", "reachPhoneNo": null, "businessLogo": null, "clientName": "Checking Business", "businessName": "Chocolate Business", "paymentAmount": 140, "status": "Created", "igst": 1.8, "cgst": 0, "amount": null, "sgst": 0, "businessClient": null, "businessProfile": null, "invoiceAttachments": [], "invoiceItems": [], "invoiceTerms": [] }, { "id": 8, "userId": null, "invoiceNumber": "invq32", "billedBy": 1, "billedTo": 3, "addGst": false, "invoiceDate": "2021-04-04T10:10:22", "dueDate": "2021-05-13T10:10:00", "totalAmount": 354, "discountSymbol": null, "discountPercent": null, "subTotal": null, "notes": null, "signature": null, "reachMail": "", "reachPhoneNo": null, "businessLogo": null, "clientName": "Checking", "businessName": "Chocolate Business", "paymentAmount": 120, "status": "Paid", "igst": 54, "cgst": 0, "amount": null, "sgst": 0, "businessClient": null, "businessProfile": null, "invoiceAttachments": [], "invoiceItems": [], "invoiceTerms": [] } ]
In that list, I have invoiceDate, one object is of april month and other is of May month.
Click here what I meant to do,I want this functionality
How can I do that, any help?
Advertisement
Answer
Here is the function you need:
function getDesiredMonth(data, month) { return data.filter((item) => item.invoiceDate.split("-")[1] === month) }
For example, you can call it like this to get May invoices:
getDesiredMonth(myArray, '05')
Let me know if that works for you 🙂