combining 2 multi-dim arrays

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • mike

    combining 2 multi-dim arrays

    I have 2 multi-dimensional array I want to combine and I'm drawing a
    blank on the "how"

    var array1 = [
    ["1","a"],
    ["2","b"]
    ];

    var array2 = [
    ["3","c"],
    ["4","d"]
    ];

    These methods do not work:

    var array3 = [
    [array1],
    [array2]
    ];

    var array3 = [
    array1,array2
    ];

    array3 should look like this:

    ["1","a"],
    ["2","b"],
    ["3","c"],
    ["4","d"]

    Any help is appreciated.

    Mike

  • Lasse Reichstein Nielsen

    #2
    Re: combining 2 multi-dim arrays

    "mike" <hillmw@charter .net> writes:
    [color=blue]
    > I have 2 multi-dimensional array I want to combine[/color]
    ....[color=blue]
    > var array1 = [
    > ["1","a"],
    > ["2","b"]
    > ];
    >
    > var array2 = [
    > ["3","c"],
    > ["4","d"]
    > ];[/color]
    .....[color=blue]
    > array3 should look like this:
    >
    > ["1","a"],
    > ["2","b"],
    > ["3","c"],
    > ["4","d"][/color]

    Try
    var array3 = array1.concat(a rray2);

    /L
    --
    Lasse Reichstein Nielsen - lrn@hotpop.com
    DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleD OM.html>
    'Faith without judgement merely degrades the spirit divine.'

    Comment

    • Thomas 'PointedEars' Lahn

      #3
      Re: combining 2 multi-dim arrays

      mike wrote:
      [color=blue]
      > I have 2 multi-dimensional array I want to combine and I'm drawing a
      > blank on the "how"
      >
      > var array1 = [
      > ["1","a"],
      > ["2","b"]
      > ];
      >
      > var array2 = [
      > ["3","c"],
      > ["4","d"]
      > ];
      >
      > These methods do not work:
      >
      > var array3 = [
      > [array1],
      > [array2]
      > ];[/color]

      That evaluates to

      var array3 = [[[["1","a"], ["2","b"]]], [[["3","c"], ["4","d"]]]];
      [color=blue]
      > var array3 = [
      > array1,array2
      > ];[/color]

      That evaluates to:

      var array3 = [[["1","a"], ["2","b"]], [["3","c"], ["4","d"]]];
      [color=blue]
      > array3 should look like this:
      >
      > ["1","a"],
      > ["2","b"],
      > ["3","c"],
      > ["4","d"]
      >
      > Any help is appreciated.[/color]

      Specific:

      var array3 = [array1[0], array[1], array2[0], array2[1]];

      General:

      var array3 = array1.concat(a rray2);

      (JavaScript 1.2 (NN4+), JScript 3.0 (IE4+), ECMAScript 3) or

      var
      a = [array1, array2],
      array3 = [];

      for (var i = 0, len = a.length; i < len; i++)
      {
      var o = a[i];
      for (var j = 0, len2 = o.length; j < len2; j++)
      {
      array3.push(o[j]); // or: array3[array3.length] = o[j];
      }
      }

      The following method helps to recognize that:

      Array.prototype .toString = function()
      {
      return "[" + this.join(",") + "]";
      }

      Examples:

      window.alert([array1, array2, array3].join("\n"));
      window.alert([array1, array2, array1.concat(a rray2)].join("\n"));


      HTH

      PointedEars

      Comment

      • mike

        #4
        Re: combining 2 multi-dim arrays

        super ...

        I like this:

        var array3 = array1.concat(a rray2);

        it works fine.

        Mike

        Comment

        Working...