2016-08-17 3 views
0

Kann ich For-Schleife verwenden, um Variablen zu deklarieren? Weil das Erklären von Variablen mit ähnlichem einzeln nicht intelligent ist.Javascript: Variable durch for Schleife erzeugen

Zum Beispiel, wenn ich will Variablen wie: DATA1, DATA2 und DATEN3, ich werde es normalerweise erklären wie unten:

var data1 = ""; 

var data2 = ""; 

var data3 = ""; 

Und das unten ist das, was ich erwarte, dass wir in dem eigentlichen Code tun.

Verwenden Sie die for-Schleife und verwenden Sie "i", um die Nummer für jede Variable zuzuweisen.

for(var i = 0; i < 3 ;i++){ 

    var data+i = ""; 

} 

kann ich das tun? Ich nehme an, dass der obige Code nicht der richtige Weg ist, sondern nur ein Konzept.

+4

Sie sollten niemals Variablen auf diese Weise generieren. Vor allem, wenn diese süße Datenstruktur ein Array ist. –

+0

also wie soll ich das mit Array tun? weil ich nicht vorhersagen kann, wie viele datax ich haben möchte – anson920520

+1

'var data = [];' wird Ihnen Millionen von Daten geben [x] - lesen Sie die [Dokumentation] (https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Referenz/Global_Objects/Array) – mplungjan

Antwort

2

Sie Objekt oder globalen Variable definieren können .

var variables = {}; 
 

 
for (var i = 0; i < 3; i++) { 
 

 
    variables['data' + i] = i; 
 

 
} 
 

 
console.log(variables); 
 

 
// you can use it like variables.data0 
 

 

 
// by the way you can define global variables as you want 
 
// but note that this pollutes the global space 
 

 
for (var i = 0; i < 3; i++) { 
 
    window['data' + i] = i; 
 
} 
 
// so you can use it like 
 

 
console.log(window.data0, ' or ', data0)

+0

kann ich For-Schleife verwenden, um es aufzurufen? – anson920520

+0

wie Variablen.data [i] – anson920520

+0

@ anson920520. Probier es einfach. wenn es funktioniert .. ist egal – DININDU

1

Aufgrund der Tatsache, dass Javascript dynamisch eingegeben wird, können Sie so etwas tun. JavaScript gibt Ihnen die Möglichkeit, über einen Schlüssel auf Variablen zuzugreifen.

var baseVariable = {}; 
for(var i = 0; i < 3; i++){ 
    baseVariable["data" + i] = "ValueForData" + i; 
} 

Sie können als diese Variablen recht einfach zugreifen, indem Sie durch die baseVariabel laufen, oder wenn Sie jetzt den genauen Betrag, den Sie können es auch so nennen:

baseVariable.data1 
-1

können Sie eval-Funktion verwenden, um Code aus Zeichenfolge zu bewerten. Zum Beispiel:

var a = 2; eval('alert(a)'); 

einen Blick auf Zuweisung Kette nehmen. Kann sein ist geeignet.

var a = b = c = d = e = f = g = ""; 

Aber diese Art und Weise ist keine gute Praxis. Wie in den Kommentaren für Ihre Frage erwähnt, bessere Möglichkeit, Array oder Objekt zum Speichern von Daten zu verwenden.