【问题标题】:Condensing repetitive code with google scripts用谷歌脚本压缩重复代码
【发布时间】:2020-06-19 02:30:50
【问题描述】:

这一切都很新,但有一个简单的脚本来提取 API 信息并放入谷歌表格。我想提取前 20 个硬币,但我不确定如何将其作为 ??'函数'??限制目前所需的代码量,特别是因为只有“XXX”基本上在变化。提前致谢

 var urlBTC='https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1d&limit=2';
 var responseBTC = UrlFetchApp.fetch(urlBTC,{'muteHttpExceptions': true});
 var jsonBTC = responseBTC.getContentText();
 var parseBTC = JSON.parse(jsonBTC);

 sheetBTC.getRange(3,3).setValue(parseBTC[0][6]);


 var sheetETH = sh.getSheetByName("ETH");
 var urlETH='https://api.binance.com/api/v3/klines?symbol=ETHUSDT&interval=1d&limit=2';
 var responseETH = UrlFetchApp.fetch(urlETH,{'muteHttpExceptions': true});
 var jsonETH = responseETH.getContentText();
 var parseETH = JSON.parse(jsonETH);

 sheetETH.getRange(3,3).setValue(parseETH[0][6]);

}```

【问题讨论】:

  • 我假设您知道如何从您使用的 API 中获取前 20 名硬币的列表?如果是这样,您可以尝试遍历列表,然后使用字符串连接传递给 URL 参数。如果您需要,我会给您更详细的答复。

标签: javascript api google-apps-script google-sheets


【解决方案1】:
    var coins = ['ETHUSDT','BTCUSDT']
    function getCoin(){
     coins.forEach(coin => {
       let url = 'https://api.binance.com/api/v3/klines?symbol='+ coin
      + '&interval=1d&limit=2'

      //do the other stuff
      })
     }

希望这有助于您朝着正确的方向前进。

基本上,我们将符号存储为一个数组循环并为此创建一个 url,在“做某事”中放入您的其他代码以处理请求。注意速率限制

【讨论】:

  • 尝试了这种方法,但不断获取 forEach.coin 不是函数。感谢您的帮助。将继续搜索
  • @Upland 的语法是否正确?刚刚使用上面的代码进行了测试,并且能够生成 URL。只是因为你输入了 forEach.coin 才提出这个问题,我更正了我的错误 forearch 到 forEach。
  • 谢谢你,先生……我今晚要开始学习 Array Loops。非常感谢。
  • 如果您还有其他问题,请告诉我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多