2016-12-16 2 views
0

Я пытаюсь ссылаться на значение глобальной переменной, используя вывод массива, но я не уверен, как это сделать. Я хочу сделать эти ссылки вне функции, поскольку мне нужно будет создать много функций, которые используют эти переменные.JavaScript Array & Global Variable Reference

Игнорируйте часть PFGetValue, мне нужно использовать ее для программы, в которой я кодирую. Будет еще много dd_meg_x, но это просто, чтобы показать вам, что я делаю. В настоящее время это вернет правильный текст «dd_meg_x» - но я хочу затем ссылаться на переменную, определенную выше. Так, например, если результат в массиве dd_meg_1, я хочу выход быть "M Energy 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

'window [variableName]' – Mahi

ответ

0

Попробуйте

return eval('string output code'); 

Так это будет выглядеть

return eval(array output); 
0

Попробуйте это:

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]]); 
 
    } 
 
}