如何按日期月份和年份计算元素

问题描述 投票:0回答:1

我有一个函数可以计算元素出现的总数。但是,我想要一个可以按日期、月份或年份计算元素的函数。

数据.js

[{
  _id:"1",
  "Name":"John",
  "Booked":"Executive"
  "date": 2023-03-02T18:15:26.723+00:00
   },

   {
  _id:"2",
  "Name":"Peter",
  "Booked":"Economy",
  "date": 2023-03-19T19:15:26.723+00:00
   },

  {
  _id:"3",
  "Name":"Wade",
  "Booked":"Economy",
  "date": 2024-04-19T19:15:26.723+00:00
   },
   {
  _id:"4",
  "Name":"Mary",
  "Booked":"Economy",
  "date": 2024-04-20T19:15:26.723+00:00
   }]
 

计数函数.js

      statusCounter(inputs) {
          let counter = 0;
          for (const input of inputs) {
            if (input.Booked === 'Economy') counter += 1;
          }
          return counter;
        }   

我希望能够获得一个函数,该函数可以按日期、月份、年份计算预订“经济”元素的总出现次数。提前致谢。

javascript reactjs function frontend
1个回答
0
投票

如果你正在使用 react,你可以使用 setState

import {useState} form "react";

const Component = () => {
  const [count, setCount] = useState(0);

  statusCounter(inputs) {
    const filteredByBooked = inputs.filter(input => input.Booked === "Economy");
    setCount(filteredByBooked.length); // will count the number of elements with booked = "Economy"
  }
}

如果您想按特定年份或月份进行过滤,您可以采用类似的方法,而不是使用

input.Booked
,而是使用
input.date
。您可能必须将时间戳转换为字符串并使用 Date() 对象才能访问月份或年份。

  statusCounter(inputs) {
      const filteredByMonth = inputs.filter(input => new Date(input.date.toString()).getMonth() === 3); //months go from 0 to 11, so this is to check for April.
      setCount(filteredByMonth.length)
  }

这应该返回基于特定月份的计数(例如:四月(或第 3 个月,因为一月从 0 开始)

© www.soinside.com 2019 - 2024. All rights reserved.