>  Q&A  >  본문

JSON 데이터로 배열을 채울 때 불일치가 발생하면 콘솔에 빈 배열이 표시됩니다.

<p>AlphaVantage API를 사용하여 일부 데이터를 가져오려고 하는데 특정 주식이 지급하는 모든 배당금을 배열에 저장하고 싶습니다. 지금은 배당금을 저축하려고 할 뿐이지만 앞으로는 배당금을 특정 날짜와 연관시킬 수 있었으면 좋겠습니다. <br /><br />데이터 검색 기능:</p><p><strong></strong></p> <pre class="brush:php;toolbar:false;">async function fetchTimeSeriesDailyAdjusted (ticker) { //일일 마감 및 배당금을 가져오는 가져오기 함수 const apiTimeSeriesDailyAdjusted = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=${symbol}&apikey=${apiKey}` //API의 유사 - 기호 업데이트 노력하다 { const 응답 = 가져오기를 기다립니다(apiTimeSeriesDailyAdjusted); const 데이터 = 응답을 기다립니다.json(); const HistoricalDividend = [] // 배당금 배열; for (let date in data['Time Series (Daily)']) { //이것은 코드가 모든 JSON을 통과하도록 해야 합니다. HistoricalDividend = 항목 ['7. 배당금']; //for 루프가 "진행되는 동안" 배당금을 저장해야 합니다. } console.log(historicalDividend); //배당금을 확인하기 위한 콘솔 로그 return HistoricalDividend; //함수가 반환해야 하는 값 } 잡기(오류) { console.error('apiTimeSeriesDailyAdjusted 가져오기 오류'); //오류 로그 } }</pre> <p>이것은 제가 만든 함수입니다. 하지만 제가 볼 수 있듯이, 아마도 여러분도 볼 수 있듯이 작동하지 않습니다. </p>
P粉438918323P粉438918323415일 전456

모든 응답(1)나는 대답할 것이다

  • P粉739942405

    P粉7399424052023-08-04 00:56:41

    문제는 HistoricalDividend라는 변수를 선언하고 이를 빈 배열로 초기화한 다음 반복할 때마다 전체 변수를 시계열 데이터에 다시 할당한다는 것입니다. 즉, 매번 값을 덮어쓰게 된다는 의미입니다. 또한 항목이 정의되지 않았습니다. 날짜를 사용하고 싶을 수도 있습니다.

    이 모든 문제를 해결하려면 배열을 받아들이고 이를 반복하고 콜백 함수 반환 값을 사용하여 새 배열을 생성하는 map() 메서드를 사용해야 합니다.

    또 다른 팁: 응답의 HTTP 상태 코드를 확인하여 예상한 응답을 받고 있는지 확인해야 합니다.

    다음은 두 가지 문제를 모두 해결하는 코드 버전입니다.


    으아아아

    회신하다
    0
  • 취소회신하다