2017-04-14 114 views
0

我希望能夠將字符串傳遞到函數中,並將其與公共後綴連接起來,並將該新字符串用作現有變量。例如,連接字符串和變量以獲得變量

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

updateInfo(arg) 
{ 
    console.log(arg + "Info"); 
} 

updateInfo("first"); 
/* Should print "The first string says this.", but instead does nothing. */ 

我在做什麼錯?這是純javascript,但我對其他圖書館開放。

回答

0

使用JavaScript函數eval(,這裏的doc

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

function updateInfo(arg) 
{ 
    console.log(eval(arg + "Info")); 
} 

updateInfo("first"); 
+0

在我讀到eval()之前,它有一個很糟糕的說唱,我不想嘗試它。但是在這種情況下,你已經證明它是正確的解決方案。 – Naltroc

0

應該

updateInfo(arg) 
{ 
    firstInfo = arg + "Info"; 
    console.log(firstInfo); 
} 

    updateInfo(firstInfo); 
0

您需要使用window[arg + "Info"]得到全局變量的值:)

console.log(window[arg + "Info"]); 

這裏是一個充滿fiddle

0

您的「firstInfo」變量在全局範圍內定義,因此附加到窗口對象。 如果您在沒有窗口引用的函數作用域中對其進行控制,它將與本地作用域一起調用。

試試這個我已經使用了窗口對象。

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

function updateInfo(arg) 
{ 
    console.log(window[arg + "Info"]); 
} 

updateInfo("first");