Javascript Google Analytics图表web组件中的类型错误
我正在使用谷歌聚合物元素创建谷歌分析仪表板。它似乎工作正常,但在google analytics图表文件中引用以下内容时抛出了一个错误 错误: 承诺类型错误中未捕获:无法读取未定义的属性“长度” 参考资料: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
/**
* 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");
}
}