我完全不熟悉对象,
我需要推送对象来获得这个结构:
var data = [
{x: 0, y: 91},
{x: 1, y: 90},
{x: 2, y: 89.7},
{x: 3, y: 89.5},
{x: 4, y: 89.2},
{x: 5, y: 88.2},
{x: 6, y: 88.4},
{x: 7, y: 87.9},
{x: 8, y: 87.2},
{x: 9, y: 87.0},
{x: 10, y: 87.2},
];
尝试这种方式
for (var i=0; i<result.rows.length; i++) {
var row = result.rows.item(i);
data.push({x: i, y: row.weight});console.log(data[i]);
}
这里是jsfiddle示例,而不是SQLite数据库的整个代码,只是我无法管理的部分,我想要做的是动态地提供图表,但看起来我无法推动'data'数组以正确的方式排列(如果存在问题,因为推送代码看起来不错)。
http://jsfiddle.net/zeroshadow/WDEUz/3/
这是我在推送数据时从控制台获得的内容:
Object {x: 1, y: 65}
Object {x: 2, y: 64.9}
Object {x: 3, y: 64.8}
Object {x: 4, y: 64.2}
Object {x: 5, y: 64.3}
Object {x: 6, y: 64.5}
Object {x: 7, y: 64.3}
Object {x: 8, y: 64}
Object {x: 9, y: 63.8}
Object {x: 10, y: 63.1}
看起来不错但是图表不喜欢它并且一切都消失了。由于我不了解对象,我认为推送后的数组有问题,因为处于初始状态的数据数组有效。
答案 0 :(得分:1)
你在for循环中使用了console.log(data[i]);
,可能你已经看到了对象如何被推入数组中。确保在for循环之外console.log(data)
(仅用于调试)。您的data.push({x: i, y: row.weight})
是正确的。也许row.weight它不是你的想法。还要确保result.rows.length
为10。
如果你需要更好的支持,你应该给我们一个小提琴或更多的信息。
答案 1 :(得分:0)
很抱歉,经常发生的事情我忽略了图表中的数据范围设置。我的错误是我的误解。再次抱歉。 代码有效。
在Jsfiddle示例中,您可以看到:
y = pv.Scale.linear(82,92).range(0,h);
我只是将数据推出65到60之间的范围。我调整了范围:
y = pv.Scale.linear(59,66).range(0,h);
并且一切都像预期的那样。
谢谢大家,对不起浪费时间。