How to create a Multi dimensional array

Discussion in 'Javascript' started by SM, Apr 27, 2007.

  1. SM

    SM Guest

    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
     
    SM, Apr 27, 2007
    #1
    1. Advertising

  2. SM

    -Lost Guest

    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[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.
     
    -Lost, Apr 27, 2007
    #2
    1. Advertising

  3. On Apr 26, 6:24 pm, 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);


    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
     
    Peter Michaux, Apr 27, 2007
    #3
  4. SM

    SM Guest

    On Apr 26, 10:45 pm, Peter Michaux <> wrote:
    > On Apr 26, 6:24 pm, 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);

    >
    > 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
     
    SM, Apr 27, 2007
    #4
  5. On Apr 26, 8:28 pm, SM <> wrote:
    > On Apr 26, 10:45 pm, Peter Michaux <> wrote:
    >
    >
    >
    > > On Apr 26, 6:24 pm, 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);

    >
    > > 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
     
    Peter Michaux, Apr 27, 2007
    #5
  6. SM

    SM Guest

    On Apr 26, 11:35 pm, Peter Michaux <> wrote:
    > On Apr 26, 8:28 pm, SM <> wrote:
    >
    >
    >
    > > On Apr 26, 10:45 pm, Peter Michaux <> wrote:

    >
    > > > On Apr 26, 6:24 pm, 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);

    >
    > > > 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
     
    SM, Apr 27, 2007
    #6
  7. SM

    SM Guest

    On Apr 26, 11:35 pm, Peter Michaux <> wrote:
    > On Apr 26, 8:28 pm, SM <> wrote:
    >
    >
    >
    > > On Apr 26, 10:45 pm, Peter Michaux <> wrote:

    >
    > > > On Apr 26, 6:24 pm, 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);

    >
    > > > 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
     
    SM, Apr 27, 2007
    #7
  8. SM

    Cah Sableng Guest

    On Apr 27, 10:28 am, SM <> wrote:
    > On Apr 26, 10:45 pm, Peter Michaux <> wrote:
    >
    >
    >
    > > On Apr 26, 6:24 pm, 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);

    >
    > > 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
     
    Cah Sableng, Apr 27, 2007
    #8
  9. SM

    SM Guest

    On Apr 27, 12:02 am, Cah Sableng <> wrote:
    > On Apr 27, 10:28 am, SM <> wrote:
    >
    >
    >
    > > On Apr 26, 10:45 pm, Peter Michaux <> wrote:

    >
    > > > On Apr 26, 6:24 pm, 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);

    >
    > > > 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,
     
    SM, Apr 27, 2007
    #9
  10. SM

    -Lost Guest

    SM wrote:
    > On Apr 27, 12:02 am, Cah Sableng <> wrote:
    >> On Apr 27, 10:28 am, SM <> wrote:
    >>
    >>
    >>
    >>> On Apr 26, 10:45 pm, Peter Michaux <> wrote:
    >>>> On Apr 26, 6:24 pm, 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);
    >>>> 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

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

    SM Guest

    On Apr 27, 12:25 am, -Lost <> wrote:
    > SM wrote:
    > > On Apr 27, 12:02 am, Cah Sableng <> wrote:
    > >> On Apr 27, 10:28 am, SM <> wrote:

    >
    > >>> On Apr 26, 10:45 pm, Peter Michaux <> wrote:
    > >>>> On Apr 26, 6:24 pm, 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);
    > >>>> 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
    >
    > --
    > -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); //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
     
    SM, Apr 27, 2007
    #11
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. kk_oop
    Replies:
    1
    Views:
    2,166
  2. Venkat
    Replies:
    4
    Views:
    975
    Venkat
    Dec 5, 2003
  3. Anthony Martinez

    Helper to create multi-dimensional arrays

    Anthony Martinez, Jun 24, 2007, in forum: Ruby
    Replies:
    20
    Views:
    288
  4. Wirianto Djunaidi
    Replies:
    2
    Views:
    203
    Wirianto Djunaidi
    Apr 29, 2008
  5. Archos

    Create a multi-dimensional array

    Archos, Nov 23, 2011, in forum: Javascript
    Replies:
    9
    Views:
    983
    Gene Wirchenko
    Nov 25, 2011
Loading...

Share This Page