Push-array in array in Javascript (jQuery)

Ich habe versucht, die push () - Methode in eine Schleife zu bauen, eine Struktur wie folgt:

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]
];

Dies ist mein 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);
        });               
    }
});  

Jedoch die Javascript-Konsole.Protokoll für die Standorte ein leeres array zeigt.

Habe ich versucht, mit push() in vielerlei Hinsicht, aber ich kann nicht die gleiche Struktur wie locations2. Das größte problem hier ist, dass ich nicht weiß, wie viele arrays werden innerhalb der Standorte-array vor der Schleife, so kann ich nicht initialisieren, vorher.

Irgendwelche Gedanken?

  • Ihre syntax sieht Recht -- sind Sie sicher, dass data.points enthält das array, das Sie erwarten sind?
  • Fügen Sie eine Fehler-callback, um Ihre ajax-call. Es kann sein, wirft ein Fehler sein, aber Sie können nicht wissen, mit diesem code.
  • Sie können tun, eine schnelle dump der array-Inhalt mit alert( JSON.stringify(x) ), wobei x das array in Frage.
  • Vergessen Sie nicht die console.log - Anweisung in der callback, weil es sonst nicht aufgefüllt werden, noch.
  • Der Ajax-call ist in Ordnung, ich kann Konsole.Protokoll jedes JSON-element und es funktioniert wie erwartet. Das problem ist nur das schieben der array in der gleichen Struktur wie locations2.
  • Ich habe versucht, folgenden code funktioniert es einwandfrei. Ich denke, Sie können überprüfen der Struktur der Daten.Punkte $.jede([{origem_lat:"1.0", origem_lng:"1.1"}, {origem_lat:"2.0", origem_lng:"2.1"} ], function(i,item){ array_push = ["test", parseFloat(Element.origem_lat), parseFloat(Element.origem_lng), i]; Standorte.push(array_push); });
  • bitte posten Sie Ihre Ergebnis json zu überprüfen!
  • Wann und wie verwenden Sie console.log?
  • Dein code funktioniert gut in Chrome. Poste bitte die Daten, die Sie empfangen vom server.
  • Ist das array immer leer, wenn Sie zuerst füllen Sie es? Haben Sie versucht: locations[i] = array_push ?

InformationsquelleAutor rodd | 2012-12-12
Schreibe einen Kommentar