Javascript 如何将对象列表转换为数组,然后将其传递给java脚本
我有以下显示图表的Javascript 如何将对象列表转换为数组,然后将其传递给java脚本,javascript,asp.net-mvc-3,jqplot,Javascript,Asp.net Mvc 3,Jqplot,我有以下显示图表的JavaScript,目前出于测试目的,我正在传递硬编码数组,如下所示: @model IEnumerable<Medical.Models.Session> <script src="../../Scripts/jqplot/jquery.jqplot.min.js" type="text/javascript"></script> <script src="../../Scripts/jqplot/jqplot.barRender
JavaScript
,目前出于测试目的,我正在传递硬编码数组,如下所示:
@model IEnumerable<Medical.Models.Session>
<script src="../../Scripts/jqplot/jquery.jqplot.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.barRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.categoryAxisRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.pointLabels.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.dateAxisRenderer.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.highlighter.min.js" type="text/javascript"></script>
<script src="../../Scripts/jqplot/jqplot.cursor.min.js" type="text/javascript"></script>
<p>
<script type="text/javascript">
$(document).ready(function () {
line1 = [['23-May-2008', 578.55], ['20-Jun-2008', 566.5], ['25-Jul-2008', 480.88],
['22-Aug-2008', 509.84], ['26-Sep-2008', 454.13], ['24-Oct-2008', 379.75],
['21-Nov-2008', 303], ['26-Dec-2008', 308.56], ['23-Jan-2009', 299.14],
['20-Feb-2009', 346.51], ['20-Mar-2009', 325.99], ['24-Apr-2009', 386.15], ['01-Apr-2012', 786.15]];
var plot1 = $.jqplot('chart1', [line1], { title: 'Data Point Highlighting',
axesDefaults: { pad: 1.2 },
axes: { xaxis: { renderer: $.jqplot.DateAxisRenderer,
tickOptions: {
formatString: '%d/%b/%Y'
}
},
yaxis: { tickOptions: { formatString: '%.2f'} }
},
highlighter: { show: true, sizeAdjust: 7.5, tooltipLocation: 'nw'
// , formatString: '<b>%s</b>'
}, cursor: { show: true, tooltipOffset: 6 }
})
});
</script>
<div id = "chart1">
</div>
我是否正确地假设您希望将数组转换为对象数组
var line2=[];
for (var i in line1) {
var a=line1[i];
var b=new Object;
b.Date=a[0];
b.Result=a[1];
line2[i]=b
}
line2现在包含可以使用.Date和.Result访问值的对象:
for (item in line2) {
// do something with item.Date and item.Result
}
Razor不能很好地与javascript混合,因此这种转换本质上是有缺陷的。我建议你选择另一种方式 变量line1的数据是二维数组。那么,为什么不使用JSON动态加载它,而不是转换Razor语法呢。例如,您可能有如下控制器:
public JsonResult LoadGraphData( ... )
{
//Populate your two dimensional array here.
....
return Json( any_two_dim_array , JsonRequestBehavior.AllowGet);
}
你的问题没有说明你想做什么。您有
line1
数组。你到底想把它转换成什么?您想让它成为一个对象数组吗?感谢您的回复,我需要构建Line1数组,以使模型的值为[Date,Result]。目前我在数组中使用静态值只是为了测试。所以我需要遍历模型并将其值分配给line1数组。。。非常感谢您的回复,但这不是我需要的(似乎我没有很好地解释我的问题)。我试图做的是在asp.net MVC视图中循环遍历模型,然后为模型中的每个对象为数组构建一个新元素,该数组应为[item.Date,item.Result]。。溴
public JsonResult LoadGraphData( ... )
{
//Populate your two dimensional array here.
....
return Json( any_two_dim_array , JsonRequestBehavior.AllowGet);
}