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)