我有像名字有几个阵列。
ArrayTop []ArrayLeft []ArrayRight []ArrayWidth []我想在一个函数动态设置的名称,然后设置值。
我已经试过的动态选择合适的阵列很多方法,但还没有拿出一个解决方案。
函数setarray(A,B,C){ 的eval(阵列+ A + [B])= C}setarray('顶',5100)在这个例子中我试图设置。
ArrayTop [5] = 100解决方案
如果您在浏览器中这样做,一个可能的解决办法是要做到:
函数setArray(A,B,C){ 窗口['阵列'+ A] [B] = C;}setArray('顶部',5,100);我会建议你所有的阵列包含在某个对象,不污染全局命名空间。因此,它会更喜欢:
VAR阵列= { ArrayTop:[], ArrayNorth:[]};函数setArray(A,B,C){ 阵列['阵列'+ A] [B] = C;}setArray('顶部',5,100);我不建议使用eval。 EVAL并不意味着这种动态的评价,这是一个巨大的性能损失。
I have a few arrays with like names.
ArrayTop[] ArrayLeft[] ArrayRight[] ArrayWidth[]I am trying to set the name dynamically in a function and then set value.
I have tried many ways of dynamically picking the right array but have not come up with a solution.
function setarray(a,b,c){ eval(Array+a+[b])=c } setarray('Top',5,100)In this example i am trying to set.
ArrayTop[5]=100解决方案
If you are doing this in the browser, one possible solution would be to do:
function setArray(a, b, c){ window['Array' + a][b] = c; } setArray('Top', 5, 100);I would recommend that all your array's be contained in some object and not pollute the global namespace. So it would be more like:
var arrays = { ArrayTop: [], ArrayNorth: [] }; function setArray(a, b, c){ arrays['Array' + a][b] = c; } setArray('Top', 5, 100);I would not recommend using eval. Eval is not meant for this kind of dynamic evaluation and it is a huge performance hit.
更多推荐
动态数组名称的javascript
发布评论