dynamic array names javascript

arrays, dynamic, eval, javascript

Solution

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.

Problem

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 ```

Original source