Wenn beim Füllen eines Arrays mit JSON-Daten Inkonsistenzen auftreten, wird in der Konsole ein leeres Array angezeigt.
P粉438918323
P粉438918323 2023-08-03 11:50:47
0
1
450
<p>Ich versuche, mithilfe der AlphaVantage-API einige Daten abzurufen, und möchte alle von einer bestimmten Aktie gezahlten Dividenden in einem Array speichern. Ich versuche gerade, Dividenden zu speichern, aber in Zukunft möchte ich Dividenden bestimmten Daten zuordnen können. <br /><br />Funktionen zum Abrufen von Daten:</p><p><strong></strong></p> <pre class="brush:php;toolbar:false;">asynchrone Funktion fetchTimeSeriesDailyAdjusted (ticker) { //Abruffunktion zum Abrufen des Tagesabschlusses und der Dividenden const apiTimeSeriesDailyAdjusted = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=${symbol}&apikey=${apiKey}`; //Lik der API – Symbol aktualisieren versuchen { const Response = waiting fetch(apiTimeSeriesDailyAdjusted); const data = Warten auf Antwort.json(); const HistoricalDividend = []; //Array der Dividenden for (let date in data['Time Series (Daily)']) { //Dieses for sollte dazu führen, dass der Code den gesamten JSON durchläuft HistoricalDividend = Eintrag ['7. Dividendenbetrag']; //Dies sollte die Dividende speichern, während die for-Schleife „geht“ } console.log(historicalDividend); //Konsolenprotokoll, um die Dividende anzuzeigen return HistoricalDividend; //Wert, den die Funktion zurückgeben muss } Catch (Fehler) { console.error('Fehler beim Abrufen von apiTimeSeriesDailyAdjusted'); //Protokoll des Fehlers } }</pre> <p>Dies ist die Funktion, die ich erstellt habe, aber wie ich sehen kann, und wahrscheinlich auch Sie, funktioniert sie nicht. </p>
P粉438918323
P粉438918323

Antworte allen(1)
P粉739942405

问题在于你声明了一个名为historicalDividend的变量,并将其初始化为空数组,然后在每次迭代中重新分配整个变量给时间序列数据,这意味着你会覆盖每次的值。此外,entry未定义,我认为你可能想使用date。

为了解决所有这些问题,你应该使用map()方法,它接受一个数组,循环遍历它,并使用回调函数返回值创建一个新数组。

作为另一个提示:你应该检查响应的HTTP状态码,以确保你获得了预期的响应。

下面是修复了这两个问题的你的代码版本:


async function fetchTimeSeriesDailyAdjusted(ticker) {
  //Fetch function to get the daily close and the dividends
  const apiTimeSeriesDailyAdjusted = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=${symbol}&apikey=${apiKey}`; //Lik of the API - update the symbol

  try {
    const response = await fetch(apiTimeSeriesDailyAdjusted);
    // Check for HTTP response code
    if (!response.ok) {
      throw new Error(
        $`Fetching daily time series data failed with status code '${response.status}'`
      );
    }
    const data = await response.json();
    const historicalDividend = data["Time Series (Daily)"].map(
      (entry) => entry["7. dividend amount"]
    );

    console.log(historicalDividend); //Console log to see the dividend

    return historicalDividend; //Value that the function must return
  } catch (error) {
    console.error("Error fetching apiTimeSeriesDailyAdjusted"); //Log of the error
  }
} 
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!