0

Hi there,

I have a little problem working with JavaScript, I was wondering if i could use some trick to call different variables with a base name. I'll explain it:

var number1 = new Array();
var number2 = new Array();

number1[1] = "one";
number1[2] = "two";
number1[3] = "three";

number2[1] = "four";
number2[2] = "five";
number2[3] = "six";

//can I process that arrays in some way like this?

for(var i=0;i=3;i++) {
document.writeln("number.i");
}

I'm trying to read that array in some "dynamic" way, but WITHOUT using bidimensional arrays, trying to use some kind of "dynamic variables name".

Can this be possible without use bidimensional arrays?

Thanks in advance.

4
Contributors
3
Replies
4
Views
12 Years
Discussion Span
Last Post by captainbeef
0

To my knowledge... NO. You could do it with Multidimensional array, but trying to do it the way above would never work (not in javascript, anyway). An option to consider, is to create your own object, with a bunch of properties, and then create an array of those objects (I think you can do that in Javascript). Then you can loop through just 1 array, and access any number of properties of the object. So, you make the object to have, say, a "tag" property. Then you create an array of that object, loop through the array, and access the .tag property. I hope I haven't confused more than I Have helped. If so, let me know, and I'll post an example when I get home.

1

There are a few ways you can operate using arrays in javascript... firstly, you don't need to be constrained to using integer indexes... all arrays in javascript are simply normal javascript objects...

hence there are a few ways you can assign new values:

array_x[0] = "red";
or
array_x[array_x.length] = "red";

or you can use the attribute methods....

array["x"] = "red";
is the same as
array.x = "red";

this might allow you to index in a manner you wish.... of course if it doesn't, you can always use the eval function....

eval("array_"+identifier+"["+ index + "]");

may be more what you are after... eval will return the value of the given expression... of course, you would be using javascript to evaluate javascript, and I have heard of this having some problems.

Votes + Comments
Good Job
0

As an alternative to the eval() function, maybe you could try this:

for(var i=0;i=3;i++) {
arrayName = 'number'+i;
document.writeln("window[arrayName][i]");
}
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.