Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

141
Visualizações
Obtener datos de la API y crear un objeto

Tengo una matriz que contiene 5 ciudades y quiero detalles meteorológicos de estas cinco ciudades. Apliqué bucle para long y lat que obtuve, pero me quedé atascado. ¿Cómo aplicaría long y lat para obtener los detalles sobre las ciudades para crear objetos, por ejemplo cities={London:{temp:xyz}} ? cities={London:{temp:xyz}} .

 var cities = { Phoenix: {}, ... }; function getData() { var city = ['London', 'Phoenix', 'Chicago', 'Texas']; for (var i = 0; i < city.length; i++) { var api = 'http://api.openweathermap.org/geo/1.0/direct?q=' + city[i] + '&appid=4dad41fdcc37b40dd07e3e1638f24b81'; // var api = 'http://api.openweathermap.org/data/2.5/weather?lat='+lat[i]+'&lon='+lon[i]+'&appid=4dad41fdcc37b40dd07e3e1638f24b81' fetch(api).then(function(response) { var data = response.json(); return data; }).then(function(data) { cities.Phoenix.temp = Math.floor(data.main.temp); }); } } getData();
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe usar la notación de corchetes para obtener la referencia a la ciudad en su objeto. cities[city[i]].temp . El problema que tendrá es el infame bucle for donde el i será diferente debido a la llamada asíncrona.

Personalmente, lo convertiría en una función y lo llamaría. Map() simplifica el ciclo.

 var cityNames = ['London', 'Phoenix', 'Chicago', 'Texas']; var cities = {}; function fetchCity(city) { var api = '//example.com/q=' + encodeURIComponent(city); return fetch(api) .then(function(response){ return response.json(); }).then(function (data) { cities[city] = cities[city] || {}; cities[city].temp = Math.floor(data.main.temp); return data; }); } function getData(callback) { var fetchCalls = citiesNames.map(fetchCity); Promise.all(fetchCalls).then((values) => { callback(values); }); } getData(function (values) { console.log('All Loaded', values); });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda