我有一些名称相似的数组。

ArrayTop[]
ArrayLeft[]
ArrayRight[]
ArrayWidth[]

我试图在函数中动态设置名称,然后设置值。

我尝试了多种方法来动态选择正确的数组,但没有提出解决方案。
function setarray(a,b,c){
    eval(Array+a+[b])=c
}

setarray('Top',5,100)

在此示例中,我尝试设置。
ArrayTop[5]=100

最佳答案

如果您在浏览器中执行此操作,则一种可能的解决方案是:

function setArray(a, b, c){
    window['Array' + a][b] = c;
}

setArray('Top', 5, 100);

我建议将所有数组都包含在某个对象中,不要污染全局 namespace 。所以它更像是:
var arrays = {
    ArrayTop: [],
    ArrayNorth: []
};

function setArray(a, b, c){
    arrays['Array' + a][b] = c;
}

setArray('Top', 5, 100);

我不建议使用eval。 Eval并不意味着进行这种动态评估,它对性能产生了巨大影响。

09-25 18:12