2016-12-16 4 views
0

Ich versuche, den Wert einer globalen Variablen mit meiner Array-Ausgabe zu referenzieren, aber ich bin mir nicht sicher, wie das geht. Ich möchte diese Referenzen außerhalb der Funktion machen, da ich viele Funktionen erstellen muss, die diese Variablen verwenden.JavaScript Array & Globale Variable Referenz

Ignorieren Sie den PFGetValue Teil, ich muss das für das Programm verwenden, das ich kodiere. Es wird viel mehr dd_meg_x geben, aber das ist nur, um Ihnen zu zeigen, was ich mache. Momentan gibt dies den korrekten Text "dd_meg_x" zurück - aber ich möchte dann auf die oben definierte Variable verweisen. So zum Beispiel, wenn das Ergebnis in dem Array dd_meg_1 ist, möchte ich die Ausgabe "M Energie 16"

var dd_meg_1 = "M Energy 16"; 
var dd_meg_2 = "Ulra Energy"; 
var dd_meg_3 = "Another Option Here"; 

function canOrderMeg1() { 
    var brand = "meg"; 
    var arrayLength = 21; 
    var canArray = []; 
    var variableName; 

    for (i = 0; i <= arrayLength; i++) { 
    variableName = ("dd_" + brand + "_" + i); 
    if (PFGetValue(variableName) === "Y") { 
     canArray.push(variableName); 
    } 
    canArray.join(", "); 
    } 
    return canArray[0]; 
} 

function canOrderMeg2() { 
    var brand = "meg"; 
    var arrayLength = 21; 
    var canArray = []; 
    var variableName; 

    for (i = 0; i <= arrayLength; i++) { 
    variableName = ("dd_" + brand + "_" + i); 
    if (PFGetValue(variableName) === "Y") { 
     canArray.push(variableName); 
    } 
    canArray.join(", "); 
    } 
    return canArray[1]; 
} 
+0

'fenster [variableName]' – Mahi

Antwort

0

Versuchen

return eval('string output code'); 

So werden diese wie

aussehen würde
return eval(array output); 
0

Versuchen Sie folgendes:

var dd_meg_1 = "M Energy 16"; 
 
var dd_meg_2 = "Ulra Energy"; 
 
var dd_meg_3 = "Another Option Here"; 
 

 
function canOrderMeg1() { 
 
    return ["dd_meg_1", "dd_meg_2", "dd_meg_3"]; 
 
} 
 

 
for(let i = 0; i < canOrderMeg1().length; i++){ 
 
    if(typeof canOrderMeg1()[i] !== "undefined") { 
 
    console.log(window[canOrderMeg1()[i]]); 
 
    } 
 
}

Verwandte Themen