J'ai: Comment obtenir: p> 24, 27, 30 mai 2019 strong> p> < fort> 01, 02, 05, 07 juin 2019 strong> p> p>
3 Réponses :
Veuillez essayer le code ci-dessous.
var formatDate = function(dates) {
var monthMap = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];
var tempDateArray = dates.map(d => d.date);
var finalJson = {};
tempDateArray.forEach(d => {
const currentKey = d.substr(3);
if (!Object.keys(finalJson).includes(currentKey)) {
finalJson[currentKey] = [];
}
finalJson[currentKey].push(d.substr(0, 2));
});
return Object.keys(finalJson).map(key => {
return finalJson[key].join(', ') + ' ' + monthMap[(parseInt(key.substr(0, 2)) - 1)] + ' ' + key.substr(3);
});
};
var date = [{date: '24.05.2019'}, {date: '27.05.2019'}, {date: '30.05.2019'}, {date: '01.06.2019'}, {date: '02.06.2019'}, {date: '05.06.2019'}, {date: '07.06.2019'}];
console.log(formatDate(date));
Au lieu de si (! Object.keys (finaljson). Enclut (CoururantKey)) { code>, vous devriez faire si (! Finaljson [courbée]) { code>
Ce ne sera pas joli, car ces dates ne sont pas formatées d'une manière digestible pour un objet de date unie ... pour scinder la scission, c'est le cas:
const monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var date = [{date: '24.05.2019'}, {date: '27.05.2019'}, {date: '30.05.2019'},
{date: '01.06.2019'}, {date: '02.06.2019'}, {date: '05.06.2019'}, {date:
'07.06.2019'}]
const sortedMonthCollection = []
monthNames.map(month => sortedMonthCollection.push([month]))
date.map(({ date }) => {
const monthIndex = monthNames[parseInt(date.substr(3, 2))-1];
sortedMonthCollection[parseInt(date.substr(3,
2))-1].unshift(parseInt(date.substr(0, 2)))
})
Je suggérerais d'utiliser date.foraach code> lorsque vous militaient triésMonCollection code>. Vous ne muterez généralement pas dans la carte RappelBack mais renvoie plutôt une nouvelle valeur.
Vous pouvez également utiliser une carte et réduire au lieu de faire des boucles pour le faire:
p>
var date = [{ date: '24.05.2019' },{ date: '27.05.2019' },{ date: '30.05.2019' },{ date: '01.06.2019' },{ date: '02.06.2019' },{ date: '05.06.2019' },{ date: '07.06.2019' },{ date: '24.05.2020' }];
var monthNames = ['January','February','March','April','May','June','July','August','September','October','November','December',];
console.log(
[
...date
.map(d => d.date.split('.').map(Number))
.sort(
(a, b) => a[2] - b[2] || a[1] - b[1] || a[0] - b[0]
)
.reduce(
(result, [d, m, y]) =>
result.set(
`${monthNames[m]} ${y}`,
(
result.get(`${monthNames[m]} ${y}`) || []
).concat(d)
),
new Map()
)
.entries(),
].map(([ym, days]) => `${days.join(',')} ${ym}`)
);
S'il vous plaît ajouter le code que vous avez essayé