0

I have an array which is given below. I am trying to traverse this 2-D array in JavaScript but instead of printing elements one by one it's printing the whole row at one time.

Below is the array:

array(7) {
  [0]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
      [1]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.8793215)
      }
      [2]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.8793215)
      }
      [3]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.3976574)
      }
      [4]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
    }
  }
  [1]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
      [1]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.8793215)
      }
      [2]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.8793215)
      }
      [3]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.3976574)
      }
      [4]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
    }
  }
  [2]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
      [1]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.8793215)
      }
      [2]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.8793215)
      }
      [3]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.3976574)
      }
      [4]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
    }
  }
  [3]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(77.18995)
        [1]=>
        float(28.5894774)
      }
      [1]=>
      array(2) {
        [0]=>
        float(77.18995)
        [1]=>
        float(28.6315224)
      }
      [2]=>
      array(2) {
        [0]=>
        float(77.2277674)
        [1]=>
        float(28.6315224)
      }
      [3]=>
      array(2) {
        [0]=>
        float(77.2277674)
        [1]=>
        float(28.5894774)
      }
      [4]=>
      array(2) {
        [0]=>
        float(77.18995)
        [1]=>
        float(28.5894774)
      }
    }
  }
  [4]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(6.7604429)
      }
      [1]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(37.07827)
      }
      [2]=>
      array(2) {
        [0]=>
        float(97.4152924)
        [1]=>
        float(37.07827)
      }
      [3]=>
      array(2) {
        [0]=>
        float(97.4152924)
        [1]=>
        float(6.7604429)
      }
      [4]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(6.7604429)
      }
    }
  }
  [5]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
      [1]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.8793215)
      }
      [2]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.8793215)
      }
      [3]=>
      array(2) {
        [0]=>
        float(77.3476518)
        [1]=>
        float(28.3976574)
      }
      [4]=>
      array(2) {
        [0]=>
        float(76.8425202)
        [1]=>
        float(28.3976574)
      }
    }
  }
  [6]=>
  array(1) {
    [0]=>
    array(5) {
      [0]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(6.7604429)
      }
      [1]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(37.07827)
      }
      [2]=>
      array(2) {
        [0]=>
        float(97.4152924)
        [1]=>
        float(37.07827)
      }
      [3]=>
      array(2) {
        [0]=>
        float(97.4152924)
        [1]=>
        float(6.7604429)
      }
      [4]=>
      array(2) {
        [0]=>
        float(68.1061138)
        [1]=>
        float(6.7604429)
      }
    }
  }
}

Here is the javascript code for it.

<script type="text/javascript">
    var Jarray = [[[[76.8425202,28.3976574],[76.8425202,28.8793215],[77.3476518,28.8793215],[77.3476518,28.3976574],[76.8425202,28.3976574]]],[[[76.8425202,28.3976574],[76.8425202,28.8793215],[77.3476518,28.8793215],[77.3476518,28.3976574],[76.8425202,28.3976574]]],[[[76.8425202,28.3976574],[76.8425202,28.8793215],[77.3476518,28.8793215],[77.3476518,28.3976574],[76.8425202,28.3976574]]],[[[77.18995,28.5894774],[77.18995,28.6315224],[77.2277674,28.6315224],[77.2277674,28.5894774],[77.18995,28.5894774]]],[[[68.1061138,6.7604429],[68.1061138,37.07827],[97.4152924,37.07827],[97.4152924,6.7604429],[68.1061138,6.7604429]]],[[[76.8425202,28.3976574],[76.8425202,28.8793215],[77.3476518,28.8793215],[77.3476518,28.3976574],[76.8425202,28.3976574]]],[[[68.1061138,6.7604429],[68.1061138,37.07827],[97.4152924,37.07827],[97.4152924,6.7604429],[68.1061138,6.7604429]]]];
    console.log(Jarray.length);
    for(var i = 0; i < Jarray.length; i++) {
        var points = Jarray[i];
        for(var j = 0; j < points.length; j++) {
            console.log("Points[" + i + "][" + j + "] = " + points[j]);
        }
    }
    </script>

I am getting output like this:

Points[0][0] = 76.8425202,28.3976574,76.8425202,28.8793215,77.3476518,28.8793215,77.3476518,28.3976574,76.8425202,28.3976574  
Points[1][0] = 76.8425202,28.3976574,76.8425202,28.8793215,77.3476518,28.8793215,77.3476518,28.3976574,76.8425202,28.3976574  and so on 

Is it possible to print the elements of array one by one like given below:

76.8425202,28.3976574  
76.8425202,28.8793215  and so on...

2 Answers 2

4

One more for-loop will do it

for(var i = 0; i < Jarray.length; i++) {
    var points = Jarray[i];
    for(var j = 0; j < points.length; j++) {
      for(var k = 0; k < points[j].length; k++)
        console.log(points[j][k][0] + "," + points[j][k][1]);
    }
}

Demo: JSBin

Sign up to request clarification or add additional context in comments.

Comments

1

Simply try to change line

var points = Jarray[i];

To

var points = Jarray[i][0];

The actual reason, that your point groups nested in single-element array on second level of your data structure.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.