2017-03-02 5 views
1

gibt die folgende Antwort:Wie ein Element im Objekt eines Arrays einfügen

response=[{"long":"long_value1","lat":"lat_value1","ts":"ts_value"},{"long":"long_value2","lat":"lat_value2","ts":"ts_value"},{"long":"long_value3","lat":"lat_value3","ts":"ts_value"},{"long":"long_value4","lat":"lat_value4","ts":"ts_value"}] 

Dann einen api verwenden, habe ich versuchte nächsten Schritt diese Operation zu tun, um „Adresse“ Eigenschaft als Reaktion auf einen:

for(var i in response){ 
     $http.get(url(i)).success(function(response2){ 
     response[i].address = response2.valueToassign;   
       }); 
} 

Mein Problem ist, dass die „Adresse“ Eigenschaft nur im letzten Objekt wie folgt eingefügt:

response=[{"long":"long_value1","lat":"lat_value1","ts":"ts_value"},{"long":"long_value2","lat":"lat_value2","ts":"ts_value"},{"long":"long_value3","lat":"lat_value3","ts":"ts_value"},{"long":"long_value4","lat":"lat_value4","ts":"ts_value", "address":"address_value4}] 

Wie kann diese Schleife "Adresse" in jedes Objekt des Arrays einfügen?

+0

Schleifen async nachschlagen Versuchen. Auch für ... in sollte nicht auf Arrays verwendet werden. – Shilly

Antwort

1

Das Problem mit Ihrem Code ist, dass es async ist, bevor Schleife führt
Diese

 var responses = [{"long":"long_value1","lat":"lat_value1","ts":"ts_value"},{"long":"long_value2","lat":"lat_value2","ts":"ts_value"},{"long":"long_value3","lat":"lat_value3","ts":"ts_value"},{"long":"long_value4","lat":"lat_value4","ts":"ts_value"}] 

      function uploader(i){ 
      if(i< responses.length) 
      { 
      $http.get(url).success(function(response2){ 
          if(response2){ 
        response[i].address = response2.valueToassign; 
        uploader(i+1) 
    } 
    else{ 
     alert('resposnse output is blank'); 
     uploader(i+1) 
     }  
}); 

      } 
      else{ 
      console.log(response); 
      } 
      } 
      uploader(0) 
+0

Ich nehme an, Sie versuchen, dies mit Rekursion zu tun? – Shilly

+0

Ja Da Ihre Schleife ausgeführt wird, bevor Ihr Anruf erfolgreich ist, überprüfen Sie meine aktualisierte Antwort –

+0

Vielen Dank Parshuram !!! Ihre Antwort löste meine Probleme !! Nizza – Blackhat

Verwandte Themen