0

Here's a pseudocode example about what I'm trying to do:

var totalLanguages = XX;

for(var i = 0; i < totalLanguages; i++){
    var dynamicArray + i = new Array();
    /*.....*/
}

I need to create dynamically many arrays as the value of totalLanguages which can be either number.

This is to be able to do something like this:

for(var i = 0; i < totalLanguages; i++){
    var arrayLanguages["es"] = dynamicArray+i;
    var arrayLanguages["en"] = dynamicArray+i;
}

Is there any way to do this?

karse23
  • 4,055
  • 6
  • 29
  • 33

4 Answers4

1

You are basically trying to recreate an array with variable names. Just use an Array to start out!

var dynamicArray = [];
for(var i = 0; i < totalLanguages; i++) {
    dynamicArray[i] = new Array();
}
epascarello
  • 204,599
  • 20
  • 195
  • 236
1

You can use multi-dimensional arrays:

var languagesArray = new Array(totalLanguages);
for(var i = 0; i < totalLanguages; i++) {
  var innerArray = new Array();
  innerArray.push("Hello");
  innerArray.push("World");
  languagesArray[i] = innerArray;
}
console.log(languagesArray[0][0]);

See: How can I create a two dimensional array in JavaScript?

Community
  • 1
  • 1
CodingIntrigue
  • 75,930
  • 30
  • 170
  • 176
1
var languageNames = ['en', 'es'];
var languages = {};

for (var i = 0; i < languageNames.length; i++) {
    languages[languageNames[i]] = [];
}
We Are All Monica
  • 13,000
  • 8
  • 46
  • 72
0

How about:

for(var i = 0; i < totalLanguages; i++){
    window["dynamicvariable " + i] = new Array();
    /*.....*/
}
Gabe
  • 49,577
  • 28
  • 142
  • 181
  • Fine downvote it and hide, that's fine. But this is actually exactly what the OP is asking for, yea there are better ways but sometimes it's good to learn the about the window object. – Gabe May 23 '13 at 14:54
  • I downvoted this because I think it's a really bad idea to pollute the global scope like this. It doesn't give any benefit over using a single object to store your dynamic variables. – We Are All Monica May 23 '13 at 15:26