Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

178
Views
JavaScript: ¿Cómo puedo insertar un objeto en una matriz de objetos?

Tengo este script que toma datos de un JSON con casi 100 datos, luego usa estos datos para traer el clima de una API y luego inserta estos datos en un objeto (usando un for para crear mis 100 objetos), me gustaría para agregar los objetos que tienen una temperature > 99 en una matriz y los que tienen una temperature < 99 en otra, lo intenté de esta manera pero no parece funcionar, lo siento si es un error súper tonto que no puedo ver , ¡Gracias por tu ayuda!

Este es mi guion:

 async function calcWeather(){ const info = await fetch('../json/data.json') .then(function(response) { return response.json() }); for (var i in info) { const _idOficina = info[i][0].IdOficina const _nombreOficina = info[i][0].NombreOficinaSN const _zona = info[i][0].Zona const _estado = info[i][0].NombreEstado const lat = info[i][0].latjson const long = info[i][0].lonjson const base = `https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${long}&appid=${api_key}&units=metric&lang=sp` fetch(base) .then((responses) => { return responses.json() }) .then((data) => { // console.log(data) var myObject = { Id_Oficina: _idOficina, Latitud: data.coord.lat, Longitud: data.coord.lon, Ciudad: data.name, Estado: _estado, Zona: _zona, Nombre_Oficina: _nombreOficina, Temperatura: data.main.temp, Descripcion: data.weather[0].description }; // validation if (myObject.Temperatura < 99){ var lstValid = []; function pushValid(){ lstValid.push(myObject[i]); } pushValid(); console.log(pushValid()) } }); } };
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Su matriz es local, por lo que para cada objeto crea una nueva matriz lstValid sin datos anteriores. La solución es crear la matriz antes de obtener los datos o antes del bucle:

 async function calcWeather(){ var lstValid = []; // HERE const info = await fetch('../json/data.json') .then(function(response) { return response.json() }); var lstValid = []; // OR HERE (ONLY ONE OF THEM) for (...) { ... }
about 4 years ago · Juan Pablo Isaza Report

0

Probablemente le convenga más crear la matriz fuera de esa llamada, ya que la borra en cada ejecución. Luego simplemente agregue su objeto. Al igual que el comentario de Trincot, no estoy seguro de qué es exactamente lo que está indexando.

 async function calcWeather(){ var lstValid = []; .... if (myObject.Temperatura < 99){ lstValid[someindex] = myObject; } else{ lstNotValid[someOtherIndex] = myObject; } }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!