我需要构建一个多维数组,如下面的for循环
var dataSet = [
{color: '#ff00aa', data: [[0,3533]]},
{color: 'red', data: [[1,3325]]},
{color: 'yellow', data: [[2,3003]]},
];
动态地我需要将值推送到dataSet数组。我尝试过以下代码
for(var j=0;j<chartDataArray.length;j++){
dataSet.push({
"color" : 'red',
"data" : [[0,3533]]
});
}
它的工作正常但是如果我为数据变量添加一些动态值则会出错。请找到以下代码
for(var j=0;j<chartDataArray.length;j++){
dataSet.push({
"color" : 'red',
"data" : [[chartDataArray[j]]]
});
}
答案 0 :(得分:0)
让我们说
chartDataArray = [
[0, 533]
];
如果按照你的方式推动它,你最终将会
[{
"color" : 'red',
"data" : [[[0, 533]]]
}]
使用额外的嵌套数组,这不是你想要的。
在这种情况下,请尝试:
for(var j=0;j<chartDataArray.length;j++){
dataSet.push({
"color" : 'red',
"data" : [chartDataArray[j]]
});
}
如果它包含数字,请说:
chartDataArray = [0, 533];
你最终会得到
[{
"color" : 'red',
"data" : [[0]]
},
{
"color" : 'red',
"data" : [[533]]
}]
这也不是你想要的。你必须成对推出数字。尝试:
for(var j=0;j<chartDataArray.length;j+=2){
dataSet.push({
"color" : 'red',
"data" : [[chartDataArray[j], chartDataArray[j+1]]]
});
}
答案 1 :(得分:0)
方括号太多了
试试[chartDataArray[j]]
。 chartDataArray
应包含
{
[[0,3533]],
[[1,3533]]
}
答案 2 :(得分:0)
您是否尝试使用:
var data = [[chartDataArray[j]]];
dataset[dataset.length]={
"color" : 'red',
"data" : data
}
让我知道......