Масив для 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:14. |