Loop in an Array?

I would like to put all my coordinates into an array and have a loop display each one but with a Google function.

Here’s the code, which draws the points on google map:

 var flightPlanCoordinates = [
    new google.maps.LatLng(37.772323, -122.214897),
    new google.maps.LatLng(21.291982, -157.821856),
    new google.maps.LatLng(-18.142599, 178.431),
    new google.maps.LatLng(-27.46758, 153.027892)
  ];

I would like to be able to do something like this:

var arrPos = new Array([37.772323, -122.214897], [21.291982, -157.821856], [-18.142599, 178.431], etc. );

var flightPlanCoordinates = [ +
   for (i=0; i<arrPos.length; i++){
      new google.maps.LatLng(arrPos[0]) + ", "
   }
   + "];"

I know you can put a loop in an array but is there an alternate method to retrieving the points from the array??

tks

You can use the push method to add items to an array.

Note: I’ve changed arrPos to store the coords as object references, so that it’s easier to work with them.


var arrPos = [
    {lat: 37.772323, long: -122.214897},
    {lat: 21.291982, long: -157.821856},
    {lat: -18.142599, long: 178.431}
],
    flightPlanCoordinates = [];

for (i = 0; i < arrPos.length; i += 1) {
    flightPlanCoordinates.push(new google.maps.LatLng(arrPos[i].lat, arrPos[i].long));
}

Or if you want something more expressive, you can use the forEach method instead of the loop, but in cases such as what you’re doing here, a more preferred way is to combine forEach and push by using the [url=“https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map”]map method which uses one array to create another array.


function createGoogleCoords(coords) {
    return new google.maps.LatLng(coords.lat, coords.long);
}

var arrPos = [
    {lat: 37.772323, long: -122.214897},
    {lat: 21.291982, long: -157.821856},
    {lat: -18.142599, long: 178.431}
],
    flightPlanCoordinates = arrPos.map(createGoogleCoords);