Javascript多维数组格式

时间:2015-02-11 11:05:04

标签: javascript

我需要构建一个多维数组,如下面的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]]]
        });
        }

3 个答案:

答案 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
}

让我知道......