How to create a Multi dimensional array

S

SM

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.

Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.

ie
LIST A
----------------
News
Entertainment
Politics

Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local


i guess i can transalate it like this:

listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);

listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);

listA[2][1] = (Politics, Local);

I then would like to iterate through the array using a FOR statment

for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}

How do i create this model using Javascript?

Thanks
Marco
 
L

-Lost

SM said:
Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.

Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.

ie
LIST A
----------------
News
Entertainment
Politics

Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local


i guess i can transalate it like this:

listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);

listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);

listA[2][1] = (Politics, Local);

I then would like to iterate through the array using a FOR statment

for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}

How do i create this model using Javascript?

listA[0] = ['News, Internacional', 'News, Asia', 'News, Europe'];
listA[1] = ['...', '...', '...'];

for (var i = 0; i < listA.length; i++)
for (var j = 0; j < listA[0].length; j++)
// listA[j]

You may want to use named arrays instead.

news = ['Internacional', 'Asia', 'Europe'];

Or better yet even still is to use an Object and JSON.
 
P

Peter Michaux

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.

Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.

ie
LIST A
----------------
News
Entertainment
Politics

Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local

i guess i can transalate it like this:

listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);

listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);

listA[2][1] = (Politics, Local);

You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)

var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};

You could dynamically add another category

listA.news.push('foo');

--------

You could use a function to build up the data structure

function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}

var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment

for(i=0; .... ; i++)
{

for(j=0; ...; j++)
{
...
}

}

for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}


How do i create this model using Javascript?


You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.

<URL: http://jibbering.com/faq/#FAQ3_1>

Peter
 
S

SM

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
Items to associate
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);

You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)

var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']

};

You could dynamically add another category

listA.news.push('foo');

--------

You could use a function to build up the data structure

function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);

}

var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}

for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}

}
How do i create this model using Javascript?

You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.

<URL:http://jibbering.com/faq/#FAQ3_1>

Peter


Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array

The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.

I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:

....
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');


for (i=0; i<subalbumsElems.length; i++)
{
....
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);

} //end for

tagForm.appendChild(tagSelect);
....


Thanks guys for all your help! Greatly appreciated
Marco
 
P

Peter Michaux

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']

You could dynamically add another category
listA.news.push('foo');

You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);

var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?

You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.

Peter

Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array

The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.

I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:

...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');

for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);

} //end for

tagForm.appendChild(tagSelect);
...


Make sure you really cross browser test this. I remember something
strange when manipulating options in a select using dom functions. If
you have a problem (or maybe if you just want shorter code) you could
build HTML for the select with the options nested and then use
innerHTML to insert the select into the page.

Peter
 
S

SM

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};
You could dynamically add another category
listA.news.push('foo');
--------
You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}
var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?
You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.
<URL:http://jibbering.com/faq/#FAQ3_1>
Peter

Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array
The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.
I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:
...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');
for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
} //end for
tagForm.appendChild(tagSelect);
...

Make sure you really cross browser test this. I remember something
strange when manipulating options in a select using dom functions. If
you have a problem (or maybe if you just want shorter code) you could
build HTML for the select with the options nested and then use
innerHTML to insert the select into the page.

Peter


Thanks Peter.
Definitely i would make sure of the cross-browsing issue. As long as
it works on IE6+, Firefox 1.5+, Safari and Opera. I Don't mind about
IE5/5.5 and the rest).
If not, like you mentionned, i will use the save method and build the
HTML code using strings and pasted using the innerHTML property..

Got to go build this piece of code
Thanks again,
Marco
 
S

SM

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};
You could dynamically add another category
listA.news.push('foo');
--------
You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}
var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?
You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.
<URL:http://jibbering.com/faq/#FAQ3_1>
Peter

Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array
The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.
I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:
...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');
for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
} //end for
tagForm.appendChild(tagSelect);
...

Make sure you really cross browser test this. I remember something
strange when manipulating options in a select using dom functions. If
you have a problem (or maybe if you just want shorter code) you could
build HTML for the select with the options nested and then use
innerHTML to insert the select into the page.

Peter


Forgot to mention:
I have a JavaScript book.... the JavaScript Bible book. But it's so
big that sometimes i cant find the answers. I will look in the book
for the object with array properties ..

Thanks
 
C

Cah Sableng

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']

You could dynamically add another category
listA.news.push('foo');

You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);

var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?

You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.

Peter

Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array

The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.

I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:

...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');

for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);

} //end for

tagForm.appendChild(tagSelect);
...


1. Create a function to change second combo based on first combobox's
selected value.
2. Create a multidimensional array in the way as -Lost or Peter
suggest.
3. Create your first combobox, and fill its options attribute. Point
its change event to function created in no (1).
4. Create your second combobox, with blank options.

HTH
 
S

SM

Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};
You could dynamically add another category
listA.news.push('foo');
--------
You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}
var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?
You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.
<URL:http://jibbering.com/faq/#FAQ3_1>
Peter

Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array
The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.
I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:
...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');
for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
} //end for
tagForm.appendChild(tagSelect);
...

1. Create a function to change second combo based on first combobox's
selected value.
2. Create a multidimensional array in the way as -Lost or Peter
suggest.
3. Create your first combobox, and fill its options attribute. Point
its change event to function created in no (1).
4. Create your second combobox, with blank options.

HTH


Thanks HTH,
 
L

-Lost

SM said:
Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};
You could dynamically add another category
listA.news.push('foo');
--------
You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}
var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?
You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.
<URL:http://jibbering.com/faq/#FAQ3_1>
Peter
Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array
The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.
I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:
...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');
for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
} //end for
tagForm.appendChild(tagSelect);
...

1. Create a function to change second combo based on first combobox's
selected value.
2. Create a multidimensional array in the way as -Lost or Peter
suggest.
3. Create your first combobox, and fill its options attribute. Point
its change event to function created in no (1).
4. Create your second combobox, with blank options.

HTH


Thanks HTH,


Um... I think that was "Hope that helped." :-x
 
S

SM

SM said:
Hello
I'm trying to create a multi dimensional array in JavaScript, but
after some reading i still can't figure out how to apply it to my
model.
Here it is:
I have a list A and for each item in the list A i want to associate an
undetermined number of items. The complication for me is the fact that
the items to associate in list A are undetermined.
ie
LIST A
----------------
News
Entertainment
Politics
Items to associate
---------------------
News ---> Internacional, Asia, Europe,
Entertainment ---> Showbizz, Events
Politics ---> Local
i guess i can transalate it like this:
listA[0][0] = (News, Internacional);
listA[0][1] = (News, Asia) ;
listA[0][2] = (News, Europe);
listA[1][0] = (Entertainment, Showbizz);
listA[1][1] = (Entertainment, Events);
listA[2][1] = (Politics, Local);
You could use an object with array properties. With an object literal
you could just print the data structure into the HTML page (assuming
we are talking about the web.)
var listA = {
news: ['internacional','asia','europe'],
entertainment: ['showbizz', 'events'],
politics: ['local']
};
You could dynamically add another category
listA.news.push('foo');
--------
You could use a function to build up the data structure
function add(list, cat1, cat2) {
if (!list[cat1]) {
list[cat1] = [];
}
list[cat1].push(cat2);
}
var listA = {};
add(listA, "News", "Internacional");
add(listA, "News", "Asia") ;
add(listA, "News", "Europe");
add(listA, "Entertainment", "Showbizz");
add(listA, "Entertainment", "Events");
add(listA, "Politics", "Local");
I then would like to iterate through the array using a FOR statment
for(i=0; .... ; i++)
{
for(j=0; ...; j++)
{
...
}
}
for (var p in listA) { // loop through an object
for (var i =0; i< listA[p]; i++) { // loop through an array
alert(listA[p] + ": " + listA[p]);
}
}
How do i create this model using Javascript?
You may want to read the first few chapters of a JavaScript language
book. This is the only recommended book.
<URL:http://jibbering.com/faq/#FAQ3_1>
Peter
Thank you guys for both of your answers.
The reason i want it to create an array is because after creating the
array i want to create 2 combobox using the JavaScript DOM and
populate the object options with the values of the array
The first combobox will be populated with the items in LIST A and the
second combobox will contain the items associated with selection in
the first combobox.
I already have the DOM function and now i have the array part.
For your info, the DOM goes something like this:
...
var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('name', 'Albums');
for (i=0; i<subalbumsElems.length; i++)
{
...
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
tagOptionValue = document.createTextNode('....');
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
} //end for
tagForm.appendChild(tagSelect);
...
1. Create a function to change second combo based on first combobox's
selected value.
2. Create a multidimensional array in the way as -Lost or Peter
suggest.
3. Create your first combobox, and fill its options attribute. Point
its change event to function created in no (1).
4. Create your second combobox, with blank options.
HTH

Thanks HTH,

Um... I think that was "Hope that helped." :-x




I need help on how to get a handle on the second combobox so i can
fill it up with values.
The filling issue, i have no problems (it's the same concept as
filling up the first comobobox).
It's how i tell the first combobox 'onchange' function to get a handle
on the second one and populated.

Here's how the code works:
......

//HERE I CREATE THE 1 AND 2 COMBOBOX USING JavaScript DOM
//I FILL UP THE FIRST COMBOBOX AND CREATE AN EMPTY SECOND COMBOBOX
//the onchange function 'addValueto2Comobobox' in the 1 combobox is
were i attempt to fill up the 2 combobox

function createCombobox(Album)
{
var divHeader = document.getElementById("container_header");

var tagForm = document.createElement('form');
var tagSelect = document.createElement('select');
tagSelect.setAttribute('size', '1');
tagSelect.setAttribute('name', 'album');
tagSelect.onchange = function() { addValueto2Comobobox(Album, i,
this); } //Album= the array containing the values

var i=0;
for (var itemvalue in Album) //loop through the album object
{
var tagOption = document.createElement('option');
tagOption.setAttribute('value', i);
if (!i) { tagOption.setAttribute('selected', 'selected'); } //if this
is the first element, add extra attribute to <tagOption>
tagOptionValue = document.createTextNode(itemvalue);
tagOption.appendChild(tagOptionValue)
tagSelect.appendChild(tagOption);
i++;
}
tagForm.appendChild(tagSelect);

//create a second combobox(empty with no values) for the subalbums
var tagSelect = document.createElement('select');
tagSelect.setAttribute('size', '1');
tagSelect.setAttribute('name', 'subalbum');
tagSelect.onchange = function() { dosomething(this); }
tagForm.appendChild(tagSelect);

divHeader.appendChild(tagForm);
}





//HERE's WHERE IM STUCK... I JUST NEED TO GET A HANDLE ON THE SECOND
COMBOBOX
function addValueto2Comobobox(album, id, obj)
{
.....

?????.options.length = 0; //empty the newly created 2 combobox

var x=0;
for (var p in album) //loop through the album object
{
for (var i=0; i<album[p].length; i++) //loop through the
subalbums
{
?????.options[x] = new Option(album[p], i); //add an
'option' value to the second combobox
x++;
}
}
....
}


Need help one more time guys
Maybe i should create a new post for this...

Thanks in advance
Marco
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top