如何在jquery中拆分数组

时间:2013-11-22 19:08:45

标签: javascript jquery arrays asp.net-mvc-4 jqplot

我正在研究jqplot图表。 图表的直到数据用逗号分割我在渲染图表时没有任何问题。

在将动态数据放入图表之前,我有脚本

 <script type="text/javascript">
        $(document).ready(function () {

            var data = [
    ['Test1', 230], ['Test2', 330], ['Test3', 430], ['Test4', 530], ['Test5', 630]
  ];

            var plot1 = jQuery.jqplot('chart1', [data],
    {
        seriesDefaults: {
            renderer: jQuery.jqplot.PieRenderer,
            rendererOptions: {
                showDataLabels: true
            }
        },
        legend: { show: true, location: 'e' }
    }
  );
        });
    </script>

看起来像 -

enter image description here

投放动态数据后

@model List<Myapplication.models.mytable>

@for (int i = 0; i < Model.Count; i++) {
    <script type="text/javascript">
        $(document).ready(function () {

            var data = [
    ['@Model[i].AccountHead', '@Model[i].AccID']
  ];

            var plot1 = jQuery.jqplot('chart1', [data],
    {
        seriesDefaults: {
            renderer: jQuery.jqplot.PieRenderer,
            rendererOptions: {
                showDataLabels: true
            }
        },
        legend: { show: true, location: 'e' }
    }
  );
        });
    </script>
}

现在它绘制图表但重叠每个条目,看起来很奇怪 -

enter image description here

一种方法是用'逗号'拆分数据数组,所以我试过 -

var data = [
        ['@Model[i].AccountHead', '@Model[i].AccID']
      ];

        var splitdata= data.split(',');
 var plot1 = jQuery.jqplot('chart1', splitdata,
    {
        seriesDefaults: {
            renderer: jQuery.jqplot.PieRenderer,
            rendererOptions: {
                showDataLabels: true
            }
        },
        legend: { show: true, location: 'e' }
    }
  );
        });

但拆分数组并不适合我。

如何以jQuery或其他任何方式拆分数组?

我的应用程序是在ASP.NET MVC4 Razor中构建的。

2 个答案:

答案 0 :(得分:1)

 <script type="text/javascript">
        $(document).ready(function ()
         {
            pieData();
        });   
          function pieData()
    {
      var data =[];
  for(int i = 0; i <@Model.Count; i++)
   {
  data.push(['@Model[i].AccountHead', '@Model[i].AccID']);  
    }
        var plot1 = jQuery.jqplot('chart1', [data],
      {
    seriesDefaults: {
        renderer: jQuery.jqplot.PieRenderer,
        rendererOptions: {
            showDataLabels: true
        }
    },
    legend: { show: true, location: 'e' }
     });
  }
   </script>

希望它适合你。

答案 1 :(得分:0)

数组定义错误。

尝试此尝试:

var splitdata= [];
splitdata[ 0 ] = '@Model[i].AccountHead';
splitdata[ 1 ] = '@Model[i].AccID';

或..

var splitdata= new Array( '@Model[i].AccountHead', '@Model[i].AccID'); 
var splitdata= [ '@Model[i].AccountHead', '@Model[i].AccID' ];
希望它有所帮助..