วันนี้ผมพบปํญหาว่า รูปกราฟที่ใช้ฟังก์ชั่นของ Google Charts ไม่แสดงผล ตรวจแล้วมีการแจ้ง error เกี่ยวกับ Uncaught (in promise) error invalid row # บลาๆ
ไล่ไปไล่มาก็พบว่าน่าจะเป็นปัญหาที่ฟังก์ชั่น arrayToDataTable มีรูปแบบการใช้ดังนี้
var dataArray = [ ["Name", "Income"], ["John", 20000], ["Smith", 25000], ["Ann", 10500] ]; var data = google.visualization.arrayToDataTable( dataArray );
พอพบปัญหา เล่นหันไปลองใช้ฟังก์ชั่นอื่นคือ
var data = new google.visualization.DataTable(); data.addColumn("string", "Name"); data.addColumn("number", "Income"); data.addRows([["John", 20000], ["Smith", 25000], ["Ann", 10500]]);
ปรากฏว่าได้ผล!!! รูปกราฟกลับมาแสดงผลได้
ฟังก์ชั่นที่เพิ่มเข้ามา (พารามิเตอร์ยังไม่ตรงกับฟังก์ชั่นต้นแบบ)
ฟังก์ชั่นต้นแบบจะเป็น arrayToDataTable( array [, boolean] )
function arrayToDataTable(a, types) { var data = new google.visualization.DataTable(); var firstRow = a.shift(); for(var i=0; i<firstRow.length; i++) { var type = types[i]!=null ? types[i] : 'number'; data.addColumn(type, firstRow[i]); } data.addRows(a); return data; }
การใช้งาน
var data = arrayToDataTable(dataArray, ["string","number"]);