Push array into array in Javascript (jQuery)

arrays, javascript, jquery, multidimensional-array, push

Solution

I figured out what the problem is. It has nothing to do with the push() method itself. Apparently ajax calls are not executed in sequential order (that's the reason it's asynchronous). I added async: false in the ajax call options and now everything works perfectly.

Thanks everyone for the input.

Problem

I've been trying to get the push() method on a loop to build a structure as follows: ``` var locations2 = [ ['User', position.coords.latitude, position.coords.longitude, 1], ['Bondi Beach', -33.890542, 151.274856, 2], ['Coogee Beach', -33.923036, 151.259052, 3], ['Cronulla Beach', -34.028249, 151.157507, 4], ['Manly Beach', -33.80010128657071, 151.28747820854187, 5], ['Maroubra Beach', -33.950198, 151.259302, 6] ]; ``` This is my code: ``` var locations = []; $.ajax({ type: "POST", url: "/ajax/map.php", data: "name=test", dataType: "json", cache: false, success: function(data){ $.each(data.points, function(i,item){ array_push = ["test", parseFloat(item.origem_lat), parseFloat(item.origem_lng), i]; locations.push(array_push); }); } }); ``` However, the Javascript console.log for locations shows an empty array. I have tried to use push() in many different ways, but I cannot get the same structure as locations2. The biggest problem here is that I do not know how many arrays are going to be inside the locations array before the loop, so I can't initialize it beforehand. Any thoughts?

Original source