Tout simplement parce qu'il en reste toujours 1, 2 ou 3 de la barquette précédente !
Donc pour pouvoir metre les 6 nouveaux en plus de ceux qui restent.
(Ce qui n'est pas très malin effectivement, puisqu'on confond alors les oeufs avec des dates de péremption différentes.)
Complement internaute :
// Réinitialise la pile, afin qu'elle soit vide, puis l'agrandisse.
piles.shift();
piles.push(pilou);
// Et enfin, on met en place les dates.
var dates = [pilou.datemain, pilou.datearrivee];
for (var i = 0; i < dates.length; i++) {
dates[i].setDate(pilou.datemain.getDate() + 1);
}
// Et voilà, on a les dates dans l'ordre chrono des oeufs.
// Les dates seront rendues dans l'ordre alphabétique, si on met des lettres après.
// On ajoute les dates, dans l'ordre.
for (var i = 0; i < dates.length; i++) {
if (i < 6) {
dates[i].setDate(pilou.datemain.