javascript - Alphavantage API - 符号未定义

标签 javascript jquery api alpha-vantage

我对 API 服务比较陌生,并尝试构建一个仪表板,在其中从 Alphavantage API 获取数据。 我试图通过创建一个列表并将索引传递给我的 API 调用来同时获取 3 个符号。我为每个符号显示 1 行。一切正常,但是当我尝试获取像 MSFT/IBM 这样的符号时,它给了我未定义。我想将符号附加在每行的前面,以便用户可以了解行中的符号率。 不确定我在这里做错了什么,或者是否有任何解决方法,我们将不胜感激,但任何帮助都会很棒!

完整的工作示例位于代码笔中:https://codepen.io/kenny-kk/pen/JjWyrwK

HTML

<button id="get_data" onclick="getData()" class="btn btn-primary" style="margin-left: 5%;">Get Data</button>

Javascript

symbol = ["IBM", "MSFT", "AAPL"];
function getting_data(){
  // if(company !== null){
    
    for (i = 0; i < symbol.length; i++) {
    $.getJSON("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol="+symbol[i]+"&outputsize=compact&interval=60min&apikey="+api)
    .done(async function(data){
      console.log(data)
      if (data.Note) {
        alert(data.Note);
        return
      }
      const responceData = [];
      var date = data["Time Series (60min)"]
      console.log(date)
      let a = 1;
      // let b = 7;
      for(var d in date){
        // var r = d.split("-");
        if(a-- > 0){
          var value = date[d];
          // dps.unshift({x: new Date(parseInt(r[0]), parseInt(r[1])-1, parseInt(r[2])), y: parseFloat(value["1. open"])});
          // if(b-- > 0){
            let c = [d, value["1. open"], value["2. high"], value["3. low"], value["4. close"], value["5. volume"]];
            responceData.push({
              date: d,
              open: value["1. open"],
              high: value["2. high"],
              low: value["3. low"],
              close: value["4. close"],
              volume: value["5. volume"],
            });
          // }
        }else{
          break;
        }
      }

最佳答案

阅读完文档后,Alpha vantage API 允许您使用元数据内响应中的符号。我不知道您为什么尝试使用您创建的数组访问它。 您只需在 for 循环 中访问它,就像

var symbolZ = data['Meta Data']['2. Symbol']

并将此符号Z推送到responceData中,例如,

responceData.push({
              Symbol: symbolZ,
              date: d,
              open: value["1. open"],
              high: value["2. high"],
              low: value["3. low"],
              close: value["4. close"],
              volume: value["5. volume"],
            });

最后,将此数据填充到 td 内的表格中,

html += '<td>' + data.Symbol + '</td>'

关于javascript - Alphavantage API - 符号未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67717109/

相关文章:

javascript - 有选择地交错两个数组

javascript - 那个讨厌的 HTML5 音频播放。我哪里错了?

jquery carousel - 似乎无法让上一张图像滑入

jquery - Fancybox 下载图片

javascript - 悬停时的颜色没有改变

javascript - 我正在寻找在浏览器中自动保存直到提交的功能

javascript - 退格键激活 li 类 jquery

php - 如何在 CodeIgniter 中将我的 API 和随 secret 钥生成器从第三方 URL 获取到我的 Controller 中

python - 我的谷歌地图 api key 在 python 中不起作用,尽管它在 swift 中工作

Javascript fetch Api 不起作用初学者问题