Ich habe Probleme mit dem Aufbau eines Arrays in js in ein charts.js Obj übergeben. Ich habe folgendes Array;Build dynamisches Array für charts.js
{"Questions":{"name":"Hello World"},"Options":{"inner":{"No":"723","Yes":"6","Maybe":"0"}}}
Das wird an die Funktion unten als "Antwort" weitergegeben. Ich möchte jedes Element im "inneren" Array durchgehen und ein Array von Objekten erstellen, die in meine chart.js passen.
function drawChart(response){
var array = JSON.parse(response)
var options = array['Options']['inner'];
for(var option in options){
var datasetValue = [];
datasetValue.push = {
value: parseInt(options[option]),
color: "#F7464A",
highlight: "#FF5A5E",
label: option
}
}
console.log(datasetValue);
var mydata = {
datasetValue
}
var pieData = [
{
value: 300,
color: "#F7464A",
highlight: "#FF5A5E",
label: "Red"
},
{
value: 50,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Green"
},
{
value: 100,
color: "#FDB45C",
highlight: "#FFC870",
label: "Yellow"
},
{
value: 40,
color: "#949FB1",
highlight: "#A8B3C5",
label: "Grey"
},
{
value: 120,
color: "#4D5360",
highlight: "#616774",
label: "Dark Grey"
}
];
var ctxOptions = {
responsive: true,
legendTemplate: "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li><span style=\"background-color:<%=segments[i].fillColor%>\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>",
showTooltips: false,
};
var pie_ctx = document.getElementById("donut").getContext("2d");
var chart = new Chart(pie_ctx).Doughnut(mydata, ctxOptions);
}
Sie können sehen, oben i zwei Arrays haben, meine dynamische Array ich versuche 'datasetValue' und 'pieData' zu bauen. pieData ist ein Beispiel, und wenn ich dieses Array in mein neues Diagramm übergebe, funktioniert das Array gut, aber mein datasetValue scheint nur das letzte Element zu enthalten, sondern alle Objekte wie pieData. Heres eine Ausgabe von meinem console.log (datasetValue);
Was mache ich gerade, um mein Array neu aufzubauen, damit es dem pieData-Array-Format entspricht?
Danke Kumpel, Sie hatten Recht, ich hatte dies innerhalb der für verschoben. Sehen Sie meinen Kommentar unter – gsusonline
@gsusonline sieht es so aus, als würden Sie immer noch die Push-Funktion außer Kraft setzen. Was passiert, wenn Sie versuchen, zu 'datasetValue.push (' anstelle von 'datasetValue.push ='? – mgamba
Oh, das habe ich basierend auf Ihrem Kommentar behoben, ich habe den var-DatensatzWert außerhalb der for-Schleife und machte es. Push ({ eher als .push = { – gsusonline