Масив для google chart
Привет. С сервера получаю массив
obj = [ "2021-10-04,45.00", "2021-10-06,45.50",...] для графика нужно так var data = google.visualization.arrayToDataTable([ ['2004', 1000], ['2005', 1170], ['2006', 660], ['2007', 1030] ]) пример Как получить такой массив, что бы первое значение(дата) было строкой, а второе числом? |
ureech,
split(,) return [a, +b] |
Ок,спасибо,сейчас попробую.
|
Google Line Chart
ureech,
<html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); const obj = [ "2021-10-04,45.00", "2021-10-06,45.50", "2021-10-07,90.50", "2021-10-14,10.50"]; function drawChart() { var data = google.visualization.arrayToDataTable([ ['Day', 'Sales'], ...obj.map(v => {let [a,b] = v.split(','); return [a, +b]}) ]); var options = { title: 'Company Performance', curveType: 'function', legend: { position: 'bottom' } }; var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); chart.draw(data, options); } </script> </head> <body> <div id="curve_chart" style="width: 900px; height: 500px"></div> </body> </html> |
var item = []; var arr = []; var res = ''; for (let key in obj) { a = obj[key]; arr = a.split(','); res = [arr[0],+arr[1]]; item[key] = res; } На выходе Array(9) [ (2) […], (2) […], (2) […], (2) […], (2) […], (2) […], (2) […], (2) […], (2) […] ] 0: Array [ "2021-10-04", 45 ] 1: Array [ "2021-10-06", 45.5 ] 2: Array [ "2021-10-20", 40 ] 3: Array [ "2021-10-31", 45 ] 4: Array [ "2021-11-01", 45.5 ] 5: Array [ "2021-11-03", 40 ] 6: Array [ "2021-11-10", 45.5 ] 7: Array [ "2021-11-16", 50 ] 8: Array [ "2021-11-26", 45 ] length: 9 График ругается,если подставляю var data = google.visualization.arrayToDataTable([ item ]); Data column(s) for axis #0 cannot be of type string× |
Не увидел вашего ответа,когда писал свой).
|
А что означает троеточие?
|
Работает только в FF. В Опере и Хроме такая ошибка
Uncaught TypeError: Cannot read properties of undefined (reading 'map') at drawChart (google.js:44) at Object.success (google.js:82) at c (jquery.js:2) at Object.fireWith [as resolveWith] (jquery.js:2) at l (jquery.js:2) at XMLHttpRequest.<anonymous> (jquery.js:2) |
Цитата:
было [[],[],[]] стало [],[],[] |
Понимаю, что не из за вашего кода,но как это поправить?
|
Часовой пояс GMT +3, время: 02:35. |