2016-12-03 5 views
1

Einfache Frage Ich hoffe (nicht sicher, was ich vermisse);Array-Push ergibt unerwartetes Array

Wie kann ich Elemente in ein einfaches und kein indiziertes Array verschieben?

Wenn dies zu tun:

var shops = [];  
angular.forEach(data, function(value, index) { //loop over data 
    shops.push(value.SHOP_CODE); 
}); 

enter image description here

+1

Es ist das Gleiche – Sajeetharan

+2

Das sind die gleichen Dinge. Beachten Sie, dass Sie dieses Array möglicherweise schon vor dem Ausfüllen protokolliert haben (weshalb Sie 'Array [0]' haben, da es zu der Zeit keine Länge hatte. Aber wenn Sie es in der Konsole sehen, hat es sich gefüllt Zeile für ein geloggtes Array wird nicht aktualisiert, wenn das Array aktualisiert wird –

+0

Ich denke, Sie haben Recht Ich gebe ein Versprechen zurück, und es wird wahrscheinlich nicht schnell genug zurückgegeben Racking mein Gehirn - Danke – Fergus

Antwort

1

Dank @Patrick Evans und @SLePort erkannte ich, dass ich auf das Versprechen warten musste. Dies funktioniert:

.$promise.then(function(data) { 
    $scope.workOrder = data; 
     angular.forEach(data, function(value, index) { //loop over aircraft data 
         shops.push(value.SHOP_CODE); 
       }); 
      shops.sort(); 
      console.log(shops); 
      }); 
1

Wenn Sie die Geschäfte Array protokollieren zu trösten, ist das Array wahrscheinlich leer und daher sagt, es Array [0].

Der Inhalt des Arrays wird erneut ausgewertet, wenn Sie auf den Dropdown-Pfeil neben Array [0] klicken. Zum Zeitpunkt des Klickens auf das Dropdownfeld ist das Array nicht leer und zeigt daher 4 Elemente.

Wenn das Array an dem Punkt, an dem Sie console.log (Shops) ausführen, nicht leer ist, erhalten Sie das Ergebnis, nach dem Sie suchen.

Ich schlage vor, Sie fügen einen Haltepunkt in der Anweisung console.log (Shops) und überprüfen Sie den Inhalt des Arrays.

+0

Vielen Dank Sie @shriharska .. Eigentlich war es, dass ich nicht auf das Versprechen wartete, zurückzukehren und das Array wurde nicht vollständig gefüllt. – Fergus