2013-07-03 71 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