Ich versuche ein Skript zu schreiben, das die Namen der letzten 12 Monate ausgibt. Da dieser Monat Januar ist, sollte es gedruckt werden: Dezember November Oktober September August Juli Juni Kann April März Februar Januar
Stattdessen druckt es den März zweimal. Ссылка
November Oktober September August Juli Juni Kann April März März Februar
HTML
%Vor%Javascript
%Vor%Was mache ich falsch?
Schöne! Nahm mich eine Weile.
Der Grund dafür ist, dass heute der 29. ist. Da Ihr Datumsobjekt implizit auf den aktuellen Tag eingestellt ist und der Februar 2013 nur 28 Tage hatte, wird März zweimal gedruckt. Korrigieren Sie dies, indem Sie den optionalen Parameter day
festlegen:
Ich glaube nicht, dass es einen Grund für Antworten gibt, die ein Date-Objekt bei jeder Iteration manipulieren. Sobald wir den aktuellen Monat kennen, müssen wir die Liste nur noch rückwärts durchlaufen und am Ende umhüllen. Das ist ein Job für %
. Leider führt %
keine echte mathematische mod
-Operation durch und kann einen negativen Wert zurückgeben, so dass die einfachste Implementierung darin besteht, sicherzustellen, dass der Wert positiv ist, indem weitere 12 hinzugefügt werden:
( JSFiddle )
Tags und Links javascript