数组的数组格式问题
Array of arrays format issue
我有以下数据格式(存储在变量matrixData
中):
{
"header": ["Date", "Total", "Breakdown"],
"data": [
[
"2014-06-05",
5340,
{
"header": ["BookingCount", "LastYearDifference"],
"data": [[506, 46], [524, 34], [448, 25]]
}
],
[
"2014-06-06",
14339,
{
"header": ["BookingCount", "LastYearDifference"],
"data": [[506, 46], [432, 92], [498, 37]]
}
]
]
}
我需要将其更改为我可以通过以下函数从Google Charts传递的内容:
function drawChart() {
var data = google.visualization.arrayToDataTable([]);
}
然后将该数据传递到以下模板中:
<script type="text/html" id="tableContent">
<tr>
<td data-content="Date"></td>
<td data-content="BookingCount0"></td>
<td data-content="BookingCount1"></td>
<td data-content="BookingCount2"></td>
<td data-content="BookingCount3"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="BookingCount"></td>
<td data-content="Total"></td>
</tr>
</script>
这将是一个每周报告,因此模板将重复7次。
我正在尝试使用下面的函数,但没有成功:
function generateObject(){
var newarray = [],
thing;
for(var y = 1; y < matrixData.Data.length; y++){
thing = {};
for(var i = 0; i < matrixData.Data[0].length; i++){
if (i > 0) {
thing[matrixData.Data[0][i]] = matrixData.Data[y][i];
}
}
newarray.push(thing);
}
return newarray;
}
可能是因为函数是arrayToDataTable
而不是arrayWithObjectsToDataTable
。文档说明:
这个方法不支持[…]使用JavaScript文字单元格对象的f或v值:{v: 3.0, f: 'Three'}。如果您需要指定自定义单元格值,或格式化值,或日期/日期时间值,请使用DataTable.addRow()/DataTable.addRows()或DataTable.setValue()。
因此,解决方案是使用DataTable.addRow()
或将thing
更改为数组并将您的值推入其中。至于对象的键值对中的keys
,文档说:
如果opt_firstRowIsData为false(默认),第一行将被解释为标题标签
所以只要把你的header作为第一个数组。
相关文章:
- JavaScript/jQuery JSON数组问题-值为未定义
- array_push平面数组问题-需要能够向数组中添加多个变量
- 尽管使用了off,click函数仍会触发,这可能也会导致数组问题
- JavaScript/jQuery悬停函数的行为很有趣——数组问题
- 使用新值更新时出现数组问题
- Javascript 矩阵数组问题
- 对于javascript和jquery的循环数组问题
- 绘制 C3 图表时的 JSON 到数组问题
- Spring 3 中的字符串数组问题
- JavaScript 数组问题
- Javascript图像数组问题
- Javascript数组问题
- 使用JS的数组问题
- 简单的Javascript数组问题
- 在多维数组问题上用javascript实现foreach循环
- 合并并返回唯一数组问题
- Javascript关联数组问题
- ng-repeat声明中的数组问题
- d3.js数组问题:Uncaught TypeError: Cannot read property 'date
- Javascript数组问题:无法读取未定义属性