考虑下面的两个实现,
data.addRows([
['2004', 1000],
['2005', 1170],
['2006', 660],
['2007', 1030]
]);
以上作品(即)它让我得到了我想要的东西。
我的实现是,
for (var i = 0; i < 10; i++) {
data.addRows['row'+i,i];
}
这是一个有效的for循环还是我做错了什么?
我正在使用谷歌可视化API来绘制图表,但下面的答案无法解决,
http://jsbin.com/okafa3/edit这是http://code.google.com/apis/visualization/documentation/gallery/areachart.html
的副本<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Sales');
for (var i = 0; i < 10; i++) {
data.addRows(['row'+i,i]);
}
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240, title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: '#FF0000'}}
});
}
</script>
</head>
<body>
<div id="chart_div"></div>
</body>
</html>
答案 0 :(得分:3)
完全等效的代码是
var rows = [];
for (var i=0; i<10; i++) {
rows.push(['row'+i, i]);
}
data.addRows(rows);
helios建议的内容也可以使用,除非它不是早期代码的精确表示,因为它会对data.addRows进行多次调用。
答案 1 :(得分:2)
你错过了函数调用的括号:
for (var i = 0; i < 10; i++) {
data.addRows(['row'+i,i]);
}
答案 2 :(得分:2)
看来你的方法addRows需要一个[string,int]数组。因此,您需要这样做:
for (var i=0; i<10; i++) {
data.addRows( // parenthesis for calling a method
[ // array of
['row'+i,i] // [string, int] even if it's only one
]);
(为了清晰起见,添加了空格和输入)