Wie deklariere und verwende ich dynamische Variablen in JavaScript?

Lesezeit: 3 Minuten

Benutzer-Avatar
user735566

Angenommen, ich muss eine JavaScript-Variable basierend auf einem Zähler deklarieren, wie mache ich das?

var pageNumber = 1;
var "text"+pageNumber;

Der obige Code funktioniert nicht.

Benutzer-Avatar
bungdito

In JavaScript (wie ich weiß) gibt es zwei Möglichkeiten, wie Sie dynamische Variablen erstellen können:

  1. eval-Funktion
  2. Fensterobjekt

bewerten:

var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);

Fensterobjekt:

var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

  • Zum Beispiel habe ich ein Array in dynamischer Variable window["text" + pageNumber] – Wie bekomme ich die Länge des Arrays?

    – Petrus

    16. Februar 2015 um 22:12 Uhr

  • Fenster[“text” + pageNumber].Länge

    – Farzad Yousefzadeh

    5. Juli 2016 um 4:29 Uhr

  • nach 6 jahren hat mir diese antwort das leben gerettet ! Vielen Dank !!

    – Hieronymus

    22. Februar 2017 um 6:57 Uhr

  • Sie können wahrscheinlich jedes Objekt verwenden, nicht nur das window eins: siehe Antwort von Mark Kahn.

    – Coeur

    11. März 2020 um 14:20 Uhr


Wie würden Sie dann auf diese Variable zugreifen, da Sie ihren Namen nicht kennen? 🙂 Sie sind wahrscheinlich besser dran, einen Parameter auf ein Objekt zu setzen, zB:

var obj = {};
obj['text' + pageNumber] = 1;

wenn du das wirklich machen willst:

eval('var text' + pageNumber + '=1');

  • Es gibt viele Möglichkeiten, wie Sie auf diese Variablen zugreifen können: Durchlaufen einer Zahlenmenge, in der die Variablen var1, var2, var3 heißen. Oder Abrufen eines unbekannten Satzes von Variablen und Laden dieser dynamisch durch Durchlaufen eines JSON-Objekts und Aktualisieren von globalen Variablen, ich bin mir sicher, dass es noch viel mehr Szenarien gibt

    – Markus Steudel

    22. August 2013 um 19:07 Uhr

Ich glaube nicht, dass Sie es tun können, um JavaScript zu singen. Ich denke, Sie können stattdessen ein Array verwenden,

 var textArray=new Array();
    textArray[pageNumber]="something";     

Angenommen, die Variable befindet sich im globalen Geltungsbereich, könnten Sie etwa so vorgehen:

var x = 1;
var x1 = "test"
console.log(window["x" + x]); //prints "test"

Eine bessere Frage könnte jedoch sein, warum Sie ein solches Verhalten wünschen.

Benutzer-Avatar
KooiInc

Sie könnten Ihren Zähler auch in ein Objekt einpacken:

var PageNumber = (function() {
  var value = 0;
  return {
   getVal: function(){return value;},
   incr: function(val){
            value += val || 1;
            this['text'+value]=true /*or some value*/;
            return this;
         }
   };
})();

alert(PageNumber.incr().incr().text2); //=>true
alert(PageNumber['text'+PageNumber.getVal()]) /==> true

Benutzer-Avatar
Abhi

Es kann mit durchgeführt werden this Schlüsselwort in JS:

Z.B:

var a = [1,2,3];

for(var i = 0; i < a.length; i++) {
  this["var" + i] = i + 1;
}

dann beim Drucken:

var0 // 1
var1 // 2
var2 // 3

Benutzer-Avatar
Bill die Eidechse

Ich brauchte vor kurzem so etwas.

Ich habe eine Liste von Variablen wie diese:

var a = $('<div class="someHtml"></div>'),b = $('<div class="someHtml"></div>'),c = $('<div class="someHtml"></div>');

Ich musste sie mit einer anderen Variablen aufrufen, die eine Zeichenfolge mit dem Namen einer dieser Variablen wie folgt enthielt:

var c="a"; // holds the name of the wanted content, but can also be 'b' or 'c'

$('someSelector').html(eval(c)) // this will just use the content of var c defined above

Verwenden Sie einfach eval, um die variablen Daten abzurufen.

Ich habe es gerade getan

1015360cookie-checkWie deklariere und verwende ich dynamische Variablen in JavaScript?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy