سؤال

لقد أنشأت وظيفة بسيطة تقوم ببناء الرسوم البيانية برمجيًا باستخدام dojox.charting. أنا في حيرة بعض الشيء حول كيفية إلقاء المتغيرات بشكل صحيح عند تمريرها إلى المخطط عبر AddSeries. النظر في هذا:

function buildChart(targetDiv){ 
        //grab the destination
        var bc = dojo.byId(targetDiv);

        //define the data for the series
        var testData = [2,4,2,2,2,3,2,10,11,12,8,4];
        var string = "2,4,2,2,2,3,2,10,11,12,8,4";
        var convertedString = string.split(",");
        console.log("Variable testData value is " + typeof(testData));
        console.log("Variable convertedString value is " + typeof(convertedString));

        //build the chart
        dojo.attr(bc,"style","width:300px;height:200px;");
        var chart = new dojox.charting.Chart2D(bc);
        chart.addPlot("default", {type: "Lines"});
        chart.addAxis("x");
        chart.addAxis("y", {vertical: true});
        //chart.addSeries("Series 1 works fine", testData);
        chart.addSeries("Series 2 not working", convertedString);
        chart.render();
}//buildChartenter code here

لاحظ أن متغير TestData يعمل بشكل جيد ، لكن متغير ConverttedString لا. يجب أن أفتقد شيئًا بسيطًا جدًا. كيف يمكنني إلقاء متغير سلسلة داخلي للعمل في هذه الحالة؟

هل كانت مفيدة؟

المحلول

نعم ، من السهل: testData هي مجموعة الأرقام ، بينما convertedString هي مجموعة من الأوتار.

يمكنك تحويل تلك الأوتار إلى أرقام كهذه:

var convertedString = dojo.map(string.split(","), parseFloat);

أو يمكنك القيام بذلك يدويًا:

var convertedString = string.split(",");
for(var i = 0; i < convertedString.length; ++i){
  convertedString[i] = parseFloat(convertedString[i]);
}

ملاحظة: باستخدام string كما في المعرف يبدو ... خطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top