动态数组名称的javascript [英] dynamic array names javascript
问题描述
我有像名字有几个阵列。
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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!