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

125
Views
Cómo recorrer un objeto desde la API y almacenarlo

Obtuve datos de esta API y me gustaría almacenar ciertas cosas en State o una variable (como una matriz).

 var baseUrl = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=<api_key>`; const [chart, setChart] = useState(); useEffect(() => { axios.get(baseUrl).then(res => { setChart(res.data); console.log(res.data); }); }, [baseUrl]); useEffect(()=>{}, [chart]);

En este punto, el gráfico (estado) tiene todos los datos almacenados (100 entradas).

 "Meta Data": { "1. Information": "Daily Prices (open, high, low, close) and Volumes", "2. Symbol": "IBM", "3. Last Refreshed": "2022-05-06", "4. Output Size": "Compact", "5. Time Zone": "US/Eastern" }, "Time Series (Daily)": { "2022-05-06": { "1. open": "135.4700", "2. high": "137.9900", "3. low": "135.4700", "4. close": "137.6700", "5. volume": "7306396" }, "2022-05-05": { "1. open": "136.4600", "2. high": "137.2600", "3. low": "134.7600", "4. close": "135.9200", "5. volume": "5957434" },

A continuación, me gustaría acceder a "Serie temporal (diario)" y obtener el número "1. Abierto" para cada día.

Traté de acceder manualmente a esos datos así (solo para ver si funciona)

 const getNumber = Object.keys(chart['Time Series (Daily)']["2022-05-06"]["1. open"]);

console.log("today's 1.open number is: " + getNumber);

pero no... react está muy enojado conmigo dándome un error diciendo: "TypeError: Cannot read properties of undefined (reading 'Time Series (Daily)')"

También probé sin Object.keys pero desafortunadamente me da el mismo error. Cuál es el problema ? ¿Cómo puedo acceder a esos datos y almacenarlos en state/let/const.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En realidad, no necesita Object.keys . Y el error que está recibiendo se debe a que está llamando a chart antes de asignarlo llamando a setChart . Debe verificar si chart no está undefined , y es mejor verificar todas las propiedades a las que está accediendo.

En ese caso, para el primer renderizado obtendrá undefined (porque aún no obtiene datos de la API) y luego obtendrá el resultado correcto.

 const getNumber = chart?.['Time Series (Daily)']?.["2022-05-06"]?.["1. open"]
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!