JS : Variablen Name mit Variable definieren möglich?
Hallo,
ich versuche gerade in JavaScript eine Variable zu erstellen.
Diese Variable soll mit einer anderen Varibale definiert werden, dass heißt
Ich will einen Namen z.B. hallo und dann habe ich noch eine Zählervariable i.
Bei jedem Durchlauf einer Schleife, wird i um eins erhöht und ich möchte dann, dass je nachdem wie oft die Schleife durchläuft so viele Variablen definiert werden, die dann heißen :
hallo1
hallo2
hallo3
...
Wie oft die Schleife durchlaufen soll ist vorher nicht vorgegeben, es soll funktionieren, egal wie oft die Schleife durchläuft.
Weiß jemand von euch eine Antwort auf mein Problem ?
LG white
3 Antworten
Sowas macht man mit einem Array, nicht mit einzelnen Variablen.
Das habe ich grade auch bemerkt. Aber trotzdem Danke
Ave!
Mir stellt sich die Frage wofür du dynamische Variablen benötigst, aber es gibt mehrere Möglichkeiten:
Möglichkeit 1 (Würde ich vermeiden):
Hier nutzen wir "eval()" um dynamische Variablen Global mit unserem Namen zu erstellen:
for (let i = 0; i < 10; i++){
eval(`var hallo${i} = ${value};`);
}
Hier erstellen wir Variablen mit den Namen Hello0, Hello1 ... Hello9.
Möglichkeit 2 (Akzeptabel, aber auch eher problematisch):
Wir nutzen keine eigenen Variablen für jeden Durchlauf, sondern nutzen direkt ein Array und die Indizes sind unser Suffix:
let hallo = [];
for (let i = 0; i < 10; i++){
hallo[i] = value;
}
Hier sind wir aber limitiert auf nummerische Indizes, auch ist die Arbeit mit Arrays eher lästig.
Möglichkeit 3 (Meine präferierte Heransgehensweise):
Wir nutzen ein Objekt und nutzen unseren präferierten Suffix als Key:
let hallo = {};
for (let i = 0; i < 10; i++){
hallo[i] = value;
}
Warum präferiere ich Objekte über Arrays?
Simple kurze Antwort: Performance & Manipulationsmöglichkeiten.
keine gute idee , das solltest du umgehen , nennt sich schlechter programmierstiel und eine sicherheitslücke . fazit : eval is evil .
machbar ist das aber mit eval
https://stackoverflow.com/questions/12268026/how-to-assign-a-value-to-a-dynamic-variable-using-eval