Javascript Google Analytics图表web组件中的类型错误

Javascript Google Analytics图表web组件中的类型错误,javascript,google-analytics,polymer,Javascript,Google Analytics,Polymer,我正在使用谷歌聚合物元素创建谷歌分析仪表板。它似乎工作正常,但在google analytics图表文件中引用以下内容时抛出了一个错误 错误: 承诺类型错误中未捕获:无法读取未定义的属性“长度” 参考资料: /** * The analytics api erroneously return some values as strings that are * supposed to be numbers. This function fixes that. * @param {Object

我正在使用谷歌聚合物元素创建谷歌分析仪表板。它似乎工作正常,但在google analytics图表文件中引用以下内容时抛出了一个错误

错误: 承诺类型错误中未捕获:无法读取未定义的属性“长度”

参考资料:

/**
 * The analytics api erroneously return some values as strings that are
 * supposed to be numbers. This function fixes that.
 * @param {Object} dataTable - The dataTable data.
 */
function ensureProperDataTableTypes(dataTable) {
  for (var i = 0; i < dataTable.rows.length; i++) {
    var row = dataTable.rows[i];
    for (var j = 0; j < row.c.length; j++) {
      if (dataTable.cols[j].type === 'number') {
        row.c[j].v = Number(row.c[j].v);
      }
    }
  }
}
我正在使用谷歌提供的代码来创建图形。像这个例子:

<google-analytics-chart
metrics="ga:sessions"
dimensions="ga:country"
sort="-ga:sessions"
max-results="5"
chart-type="column">
</google-analytics-chart>

您知道是什么原因导致了此错误吗?

也许您可以修改临时代码,以便在迭代之前检查数组的内容,然后查看控制台,了解是谁/何时导致了此异常:

function ensureProperDataTableTypes(dataTable) {
  if (dataTable && Array.isArray(datatable.rows)) {
    for (var i = 0; i < dataTable.rows.length; i++) {   //The call to length will cause your exception is rows is not an array
      var row = dataTable.rows[i];
      if(Array.isArray(row.c)){
        for (var j = 0; j < row.c.length; j++) { //The call to length will cause your exception if c is not an array
          if (dataTable.cols[j].type === 'number') {
            row.c[j].v = Number(row.c[j].v);
          }
        }  
      }
      else{
        console.error("Row should contain an array of cols");
      }
    }
  } else{
    console.error("parameter should contain an array of rows");
  }
}