Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有cmc匹配时,Google表单的范围宽度不正确_Javascript_Google Sheets Api - Fatal编程技术网

Javascript 没有cmc匹配时,Google表单的范围宽度不正确

Javascript 没有cmc匹配时,Google表单的范围宽度不正确,javascript,google-sheets-api,Javascript,Google Sheets Api,我使用这个函数使用coinmarketcap的v2 api从coinmarketcap中提取信息。我遇到的问题是,如果coinmarketcap上不存在“website_slug”,我会得到一个不正确的范围宽度错误,而不是只将xxx放入单元格的函数。这可以通过在列B中有一个与cmc()上的网站\u slug不匹配的单元格来重新创建 函数getMarketCap(sheetname){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=

我使用这个函数使用coinmarketcap的v2 api从coinmarketcap中提取信息。我遇到的问题是,如果coinmarketcap上不存在“website_slug”,我会得到一个
不正确的范围宽度
错误,而不是只将
xxx
放入单元格的函数。这可以通过在列B中有一个与cmc()上的网站\u slug不匹配的单元格来重新创建

函数getMarketCap(sheetname){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheetByName(sheetname); var资产=[]; var idRange=sheet.getRange(“B1:B”); var lastRow=getLastRowOfRange(idRange); var cellRange=sheet.getRange(1,2,lastRow).getValues(); var mcRange=sheet.getRange(1,3,最后一行); var mcValues=[]; 对于(var i=0;i如果(!mcValues[h][0])mcValues[h][0]=='xxx',请修改
然后再试一次?@Tanaike如果我做了这个更改,所有的单元格都会被我的环境中的
xxx
填满,这似乎与你的情况不同。当没有给出网站slug时,
xxx
被放入单元格。其他单元格具有正确的值。我想我可能误解了你的问题。如果我误解了,你能告诉我吗?我想解决你的问题。@Tanaike这里有一个到工作表的链接。我已经更新了上面的代码以包含您建议的更改。现在,即使所有的网站都是正确的,我还是会得到xxx,谢谢你的回复。但不幸的是,我找不到床单。
function getMarketCap(sheetname) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetname);  
  var assets = [];  
  var idRange = sheet.getRange("B1:B");
  var lastRow = getLastRowOfRange(idRange);  
  var cellRange = sheet.getRange(1, 2, lastRow).getValues();
  var mcRange = sheet.getRange(1, 3, lastRow);  
  var mcValues = [];  
  for (var i = 0; i < cellRange.length; i++) {
    assets[i] = cellRange[i];
  }  


  var req = [];
  for (var i = 0; i < 16; i++) {
    req.push({
      muteHttpExceptions: true,
      method: "get",
      url: "https://api.coinmarketcap.com/v2/ticker/?start=" + (i * 100 + 1),
    });
  }
  var responses = UrlFetchApp.fetchAll(req);
  var res = responses.filter(function(e){return e.getResponseCode() == 200}).map(function(e){return JSON.parse(e.getContentText())});
  if (responses.length != res.length) Logger.log("%s errors occurred.", responses.length - res.length);
  var mcValues = [];
  assets.forEach(function(e, h) {
    mcValues[h] = []
    res.some(function(f) {
      Object.keys(f.data).some(function(g) {
        if (f.data[g].website_slug == e[0]) {
          mcValues[h][0] = f.data[g].quotes.USD.market_cap;
          return true;
        }
      });
      if (mcValues[h][0]) return true;
    });
    if (!mcValues[h][0]) mcValues[h][0] = 'xxx';

  });

  mcRange.setValues(mcValues); 
}