2013-07-03 65 views
0

我如何才能讓下面的更有效的修改特定的屬性?:通過包含數組引用

var varToChange = ['playerList',24,'hp',24]; 

//Sending that info to the client... 

if(varToChange.length == 2){ 
window[varToChange[0]] = varToChange[1] 
} 
... 
if(varToChange.length == 4){ 
window[varToChange[0]][varToChange[1]][varToChange[2]][varToChange[3]] = varToChange[4] 
} 
+0

這是JavaScript嗎?請添加此標籤。 –

+0

是的。這是JavaScript。 – PerfectAffix

+0

你應該跳過'varToChange [3]'? – user2357112

回答

0
var tmp = window; 
var length = varToChange.length; 
for (var i = 0; i < length - 2; i++) { 
    tmp = tmp[varToChange[i]]; 
} 
tmp[varToChange[length - 2]] = varToChange[length - 1]; 

需要注意的是,你正在做這個事實看起來像一個警告標誌給我。可能有更好的方法來實現你正在做的任何事情。

+0

工作正常。 :D但是,對我來說,這可能不是'正確的'編碼。不過,它可能會變得方便。 – PerfectAffix