如何在javascript中创建动态数组元素

时间:2015-09-29 09:45:47

标签: javascript jquery arrays highcharts

我正在使用以下代码读取数据并加载二维数组,方法是初始化2d数组(系列)

其中系列结构如下(高图系列)

系列:[{        名称:''        数据:[]     }]

手动代码:

  <!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>


  <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>




  <link rel="stylesheet" type="text/css" href="/css/result-light.css">

  <style type='text/css'>

  </style>




<script type='text/javascript'>
$(function () {

 var options = {
        chart :{
                  type: 'polygon',
                  renderTo: 'container',

        },
        title: {
            text: 'Height vs Weight'
        },
        yAxis: {
            title: false,
            gridLineWidth:0,
            lineWidth:0,
            labels:{
                enabled: false
            }
        },
          series: [{},{}]
    };

    $.getJSON('data.json', function(data) {
        options.series[0].data = data[0];
        options.series[1].data = data[1];

        var chart = new Highcharts.Chart(options);
    })

});
</script>

</head>
<body>
  <script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/highcharts-more.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>


</body>

但我想初始化动态数组,以便我可以动态插入数组(data [i])。

data.json

[
    [
        [
            153,
            42
        ],
        [
            149,
            46
        ],
        [
            149,
            55
        ],
        [
            152,
            60
        ]
    ],
    [
        [
            253,
            142
        ],
        [
            349,
            146
        ],
        [
            349,
            155
        ],
        [
            352,
            160
        ]
    ]
]

动态代码:

series: [[]]

 $.getJSON('data.json', function(data) {
        for (i=0; i<data.length(); i++) {
           series[i].data = data[i];
         }
    })

上面的代码似乎不起作用。请帮助我如何解决我的问题。

1 个答案:

答案 0 :(得分:3)

您需要使用push()函数动态追加

使用第二个数组

编辑以获取所需的&#34;数据&#34;结构

// initialize array
var series = [];


$.getJSON('data.json', function(data) {
    var temparray = [];
    for (i=0; i<data.length; i++) {
        temparray["data"] = data[i];
        series.push(temparray);
    }
})