By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,971 Members | 1,191 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,971 IT Pros & Developers. It's quick & easy.

How to create a Multi dimensional array

P: n/a
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

Apr 27 '07 #1
Share this Question
Share on Google+
10 Replies


P: n/a
SM wrote:
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[i][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.

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.
Apr 27 '07 #2

P: n/a
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

Apr 27 '07 #3

P: n/a
SM
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}

}
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

Apr 27 '07 #4

P: n/a
On Apr 26, 8:28 pm, SM <servandomont...@gmail.comwrote:
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

Apr 27 '07 #5

P: n/a
SM
On Apr 26, 11:35 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 8:28 pm, SM <servandomont...@gmail.comwrote:
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

Apr 27 '07 #6

P: n/a
SM
On Apr 26, 11:35 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 8:28 pm, SM <servandomont...@gmail.comwrote:
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

Apr 27 '07 #7

P: n/a
On Apr 27, 10:28 am, SM <servandomont...@gmail.comwrote:
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

Apr 27 '07 #8

P: n/a
SM
On Apr 27, 12:02 am, Cah Sableng <cahsabl...@gmail.comwrote:
On Apr 27, 10:28 am, SM <servandomont...@gmail.comwrote:
On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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,

Apr 27 '07 #9

P: n/a
SM wrote:
On Apr 27, 12:02 am, Cah Sableng <cahsabl...@gmail.comwrote:
>On Apr 27, 10:28 am, SM <servandomont...@gmail.comwrote:
>>On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.
Apr 27 '07 #10

P: n/a
SM
On Apr 27, 12:25 am, -Lost <maventheextrawo...@techie.comwrote:
SM wrote:
On Apr 27, 12:02 am, Cah Sableng <cahsabl...@gmail.comwrote:
On Apr 27, 10:28 am, SM <servandomont...@gmail.comwrote:
>On Apr 26, 10:45 pm, Peter Michaux <petermich...@gmail.comwrote:
On Apr 26, 6:24 pm, SM <servandomont...@gmail.comwrote:
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][i]);
}
}
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

--
-Lost
Remove the extra words to reply by e-mail. Don't e-mail me. I am
kidding. No I am not.


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], 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

Apr 27 '07 #11

This discussion thread is closed

Replies have been disabled for this discussion.