2016-06-20 4 views
0

Ich mache ein Beispiel für Diagramm mit Diagramm JS. In der horizontalen Zeile zeige ich vier Monate, um die Entwicklung eines Indikators zu zeigen. Ich habe eine Reihe von Monaten auf diese Weise komponiert. Wie Sie jeden Monat mit einem Schlüssel sehen. Mein Problem ist, dass ich nicht‘weiß, wie man Schleife, wenn ich am Index ankommen n-3 = 0 erneut starten aus dem Schlüssel 11wie über ein Array von Monaten Schleife

var date = new Date(); 
var month = new Array(); 

month[0] = "January"; 
month[1] = "February"; 
month[2] = "March"; 
month[3] = "April"; 
month[4] = "May"; 
month[5] = "June"; 
month[6] = "July"; 
month[7] = "August"; 
month[8] = "September"; 
month[9] = "October"; 
month[10] = "November"; 
month[11] = "December"; 

[month[n-3],month[n-2], month[n-1], month[n]] 

@evolutionxbox ich displayt er Monate wie dieser 11 (Dezember) 0 (Januar) 1 (Februar) 2. In Code ist wie dieser Monat [n-3], Monat [n-2], Monat [n-1], Monat [n] dargestellt. in diesem Fall n-3 = -1 ich nicht diesen Schlüssel, so sollte ich zurück zu 11

So kann mir bitte jemand helfen. Danke

+0

[arr.reverse()] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse) und [Erstellen eines Arrays] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#Creating_a_two- dimensional_array) –

+0

Was macht * * "Ich weiß nicht, wie man eine Schleife macht, wenn ich den Index n-3 = 0 erreiche, um wieder von der Taste 11 anzufangen" ** meine ich? Könntest du es ein bisschen mehr erklären? - [Hier finden Sie Hilfe für Loop-Arrays] (http://stackoverflow.com/a/9329476/989920) – evolutionxbox

+0

@evolutionxbox I zeigt den Monat 11 (Dezember) 0 (Januar) 1 (Februar) 2. In Code wird veranschaulicht wie dieser Monat [n-3], Monat [n-2], Monat [n-1], Monat [n]. In diesem Fall n-3 = -1 ich nicht diesen Schlüssel, so dass ich zu 11 zurückkehren sollte. – KubiRoazhon

Antwort

1

Verwenden Sie% Operator: Wenn Sie n erhöhen, verwenden Sie einfach n%12. Auf diese Weise beginnst du bei 0 nach 11 + 1 = 12.

In Ihrem Fall:

[month[(n-3)%12],month[(n-2)%12], month[(n-1)%12], month[n%12]] 

var month = new Array(); 
 

 
month[0] = "January"; 
 
month[1] = "February"; 
 
month[2] = "March"; 
 
month[3] = "April"; 
 
month[4] = "May"; 
 
month[5] = "June"; 
 
month[6] = "July"; 
 
month[7] = "August"; 
 
month[8] = "September"; 
 
month[9] = "October"; 
 
month[10] = "November"; 
 
month[11] = "December"; 
 

 
for(n =3;n< 24; n++){ 
 
\t console.log(month[(n-3)%12]+","+month[(n-2)%12]+","+month[(n-1)%12]+","+month[n%12]) 
 
}

+0

Könnten Sie hinzufügen ein Beispiel? Warum ist der Restoperator besser als das Reverse/Looping über das Array? – evolutionxbox

+0

Ich denke, das Schleifen über das Array ist eine gute Idee, aber wie ich die Frage verstehe, will er n erhöhen und wieder bei 0 für Werte größer als 11 beginnen. Deshalb schlug ich den Modulus Operator. – Urknecht

+0

Das funktioniert nur wenn n-x> = 0 – KubiRoazhon