微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

日历应用程序问题:如何创建一个表示一个月中每一天的数组并将特定活动与某天相关联?

如何解决日历应用程序问题:如何创建一个表示一个月中每一天的数组并将特定活动与某天相关联?

我在做一个个人项目,我会说“数据结构问题”,用一些词来说。这个想法是创建一个日历,显示一个月中的几天以及用户在某个特定日期的活动。

用户数据的结构是这样的:

   const userData = [ 
      { "id": "user1","calendar": [
           {day: moment({ M: 2,d: 8 }).format("D,M,YYYY"),activity: "WorkOut" },{},{}] },{Other user},{Other user}
]

它是用户对象的数组,但用户的重要部分是“日历”,其中包含表示“这个特定的日子,我有这个活动”的对象 em>.

我创建了一个函数,它将两件事作为参考

-一个用户的数据

-一个包含一个月中每一天的一个矩对象的数组

let monthDates = new Array(dateObject.daysInMonth())
                     .fill(null) 
                     .map((x,i) => moment(dateObject).startOf('month').add(i,'days'));

let createObjectOfDatesArray = (data) => {
    monthDates.map(day => {
      if (data.length > 0) {
        data.map(item => {
          if (day.format("D,YYYY") === item.day) {
            let day = item.day
            let activity = item.activity
            datesObjectsArray.push(new Object({ day,activity }))
          }
        })
      }
      let dayFormated = day.format("D")
      datesObjectsArray.push(new Object({ day: dayFormated }))
    })
  }
  createObjectOfDatesArray(userData[0].calendar)

函数应该做什么? 它遍历月份的每个时刻对象(monthDates 的每个元素)。如果它有(数据),它会再次遍历此数据,并且如果用户分配给其日历的日期与其被迭代的日期相匹配;它创建一个包含日期和活动 ({day: "",activity: ""}) 的对象以存储在数组 (datesObjectsArray) 中。

如果没有发生,只需在其数组 (datesObjectsArray) 中存储一个仅包含一天 ({day: ""}) 的对象。

想法是这个数组在屏幕上代表一个日历,每个月的每一天。如果用户在特定日期有活动,它也应该显示

问题:问题出现的时候,在一个月的每一天的迭代中,它也迭代了用户数据的数组。

问题:创建一个函数的逻辑是怎样的,该函数每天返回一个数组,如果特定的一天有一个活动附加到它,它应该被推送到数组中? 像这样:

const datesObjectsArray = [ { day: “1”},// The user doesn't have an activity this day
  { day: “2”},//The user doesn't have an activity this day
  { day: “2”,actividad “WorkOut” } ]  //The user has an activity this day

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。