JS : Variablen Name mit Variable definieren möglich?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Sowas macht man mit einem Array, nicht mit einzelnen Variablen.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

white47583 
Beitragsersteller
 20.11.2022, 19:08

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


gogogo  20.11.2022, 19:09

Sehe ich genauso. Auch das mit eval.