แก้ปัญหาฟังก์ชั่น arrayToDataTable ใน Google Charts API (แบบเร่งด่วน)

วันนี้ผมพบปํญหาว่า รูปกราฟที่ใช้ฟังก์ชั่นของ 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"]);