Bonjour,
Sous Node.js j'arrive à récupérer un objet de calendrier et à le passer à mon objet de rendu de page ("data") de cette manière (je simplifie) :
Ce qui me donne ceci comme objet :
Jusque là tout va bien, c'est ce qui est attendu. Mais lorsque je cherche à itérer sur tous les jours du mois afin d'avoir toutes les infos du mois en cours, rien ne va plus :
Comme vous le voyez, les objects et tableaux de second niveau sont renvoyés non interprétés, sous forme de [Object] et [Array]. Pour arriver à ce résultat non souhaité j'ai fais comme ceci (attention, ça va certainement vous piquer les yeux) :
Pour ma fonction de calendrier j'avais pourtant écrit un test pour vérifier, et lui fonctionnait comme attendu :
Il semble que le passage dans la boucle, sous forme de tableau, soit un problème. Il y a forcément un truc que je n'ai pas compris, mais il y a tellement de notions que je ne maîtrise pas que je ne sais où intervenir. Merci pour vos remarques et suggestions.
Modifié par Olivier C (20 Jan 2021 - 06:17)
      
      
    Sous Node.js j'arrive à récupérer un objet de calendrier et à le passer à mon objet de rendu de page ("data") de cette manière (je simplifie) :
data._calendar = liturgicalCalendar(DateTime.fromFormat(day + month + year, 'ddMMyyyy'), 'france')
Ce qui me donne ceci comme objet :
{
  p: { key: 'lent', name: 'Carême', color: 'purple', priority: 9 },
  f: {
    key: 'defaultKey',
    name: 'De la férie',
    extra: '',
    color: '',
    type: '',
    priority: 13
  },
  m: {
    key: 'secondLentSunday',
    name: 'Deuxième dimanche de Carême, <em>Reminiscere</em>',
    color: 'purple',
    type: 1,
    priority: 2
  },
  key: 'secondLentSunday',
  name: 'Deuxième dimanche de Carême, <em>Reminiscere</em>',
  extra: '',
  fullName: 'Deuxième dimanche de Carême, <em>Reminiscere</em>',
  link: '',
  color: [ 'purple', 'purple' ],
  type: 'solennité',
  priority: 2,
  date: '28/02/2021',
  weekday: 7
}
Jusque là tout va bien, c'est ce qui est attendu. Mais lorsque je cherche à itérer sur tous les jours du mois afin d'avoir toutes les infos du mois en cours, rien ne va plus :
{
    '1': {
    // @note retourne les objets du 1 au 27 février...
  },
    '28': {
      p: [Object],
      f: [Object],
      m: [Object],
      key: 'secondLentSunday',
      name: 'Deuxième dimanche de Carême, <em>Reminiscere</em>',
      extra: '',
      fullName: 'Deuxième dimanche de Carême, <em>Reminiscere</em>',
      link: '',
      color: [Array],
      type: 'Solennité',
      priority: 2,
      date: '28/02/2021',
      weekday: 7
    }
  }
Comme vous le voyez, les objects et tableaux de second niveau sont renvoyés non interprétés, sous forme de [Object] et [Array]. Pour arriver à ce résultat non souhaité j'ai fais comme ceci (attention, ça va certainement vous piquer les yeux) :
    const dateTest = DateTime.fromFormat(month + year, 'MMyyyy')
    const daysInMonth = dateTest.daysInMonth
    const calendarItem = {}
    for (let i = 1; i < daysInMonth + 1; i++) {
      calendarItem[i] = liturgicalCalendar(dateTest.plus({days: i - 1}))
    }
    data._calendar = calendarItem
Pour ma fonction de calendrier j'avais pourtant écrit un test pour vérifier, et lui fonctionnait comme attendu :
const test0 = (() => { // @todo For test.
  const dayMonthYear = '28022021'
  const dateTest = DateTime.fromFormat(dayMonthYear, 'ddMMyyyy')
  const daysInMonth = dateTest.daysInMonth
  for (let i = 1; i < daysInMonth; i++) {
    const lc = liturgicalCalendar(dateTest.plus({days: i}))
    console.log(lc) // retourne tous les objets dans leur intégralité
  }
})()
Il semble que le passage dans la boucle, sous forme de tableau, soit un problème. Il y a forcément un truc que je n'ai pas compris, mais il y a tellement de notions que je ne maîtrise pas que je ne sais où intervenir. Merci pour vos remarques et suggestions.
Modifié par Olivier C (20 Jan 2021 - 06:17)