TypeError:无法读取未定义的属性“ 0”(Google表格/应用脚本)

时间:2020-09-11 19:42:33

标签: google-apps-script google-sheets

我想知道我需要在脚本中进行哪些调整,以使结果显示在电子表格中:

TypeError:无法读取未定义的属性“ 0”(第7行)

const id = new mongoose.Schema.ObjectId()

1 个答案:

答案 0 :(得分:2)

data是一个数组,因此您需要先访问该元素:

  var apelido = result[0].Atleta.apelido;

我认为您正在尝试将每个播放器都打印到电子表格,但是您编写的内容仅是查看其中一个播放器。请先查看API返回的数据并了解其结构。看起来像这样:

[
  {
    "Atleta": {
      "atleta_id": 68952,
      "nome": "Mário Sérgio Santos Costa",
      "apelido": "Marinho",
      "foto": "https://s.glbimg.com/es/sde/f/2019/05/30/cd8a7f9b0744e105efa0a0c572d37d6f_FORMATO.png",
      "preco_editorial": 5
    },
    "escalacoes": 996124,
    "clube": "SAN",
    "clube_nome": "Santos",
    "clube_id": 277,
    "escudo_clube": "https://s.glbimg.com/es/sde/f/organizacoes/2014/04/14/santos_60x60.png",
    "posicao": "Atacante",
    "posicao_abreviacao": "ATA"
  }
]

一旦您了解了数据,就考虑使用经过修改的脚本,该脚本使用batch operations来更快地运行。

function Cartola() {
  var url = 'https://api.cartolafc.globo.com/mercado/destaques';
  var response = UrlFetchApp.fetch(url);
  var results = JSON.parse(response.getContentText());
  
  var table = [['apelido','foto','clube_nome','posição']];
  for (var i = 0; i < results.length; i++) {
    var r = results[i];
    var apelido = r.Atleta.apelido;
    var foto = r.Atleta.foto;
    var clube_nome = r.clube_nome;
    var posição = r.posicao;
    table.push([apelido, foto, clube_nome, posição]);
  }

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear().getRange(1, 1, table.length, table[0].length).setValues(table);
}