I am drawing a line on the canvas using the data provided by a JSON object:
var data = {value: [{X: "04-28", Xt: "7:45 PM", YS: 116, WD: 74, YP: 0}, {X: "04-29", XT: "2: 00 am", Ys: 112, Yd: 73, Yp: 0}, // Using a bit of jQuery to draw a line:
C.lineWidth = 4; C.strokeStyle = '# f00'; C.beginPath (); C.moveTo (getXPixel (0), getYPixel (data.values [0] .YS); (Var i = 1; i & lt; data. Values.length; i ++) {c.lineTo (getXPixel (i), getYPixel (data.values [i] .YS); } C. Stroke (); To take care of several lines ('yadhi' and 'yip' and to attract any other line needed later) I take that bit into the function I want to use, I can call:
drill (4, '#faf', 'ys'); The function I tried:
function drawline (width, style, d) {c.lineWidth = width; C. Stroke style = style; C.beginPath (); C.moveTo (getXPixel (0), getYPixel (data.values [0]. D)); {C.lineTo (getXPixel (i), getYPixel (data.values [i]. D) for (var i = 1; i & lt; data.values.length; i ++); } C. Stroke (); } does not work, there is no error, but no line has been created. It works if I put 'YS' in the function directly. How can I pass that bit as logic?
You d property value [i] , You want the value of the string value that holds d you obj [d] , not obj.d similar to: function drawline (width, style, d) {c .lineWidth = width; C. Stroke style = style; C.beginPath (); C.moveTo (getXPixel (0), getYPixel (data.values [0] [d])); {C.lineTo (getXPixel (i), getYPixel (data.values [i] [de]) for (var i = 1; i & lt; data.values.length; i ++); } C. Stroke (); } For example:
var obj = {a: 1, b: 2, c: 3}; Console.log (obj.a); // 1 console.log (obj ['a']); // 1 var a = 'b'; Console.log (obj.a); // 1, still console.log (obj [a]); // 2, because var is a == 'B' as: console.log (obj ['b']); // 2
No comments:
Post a Comment