将$get结果字符串转换为javascript数组
Turn $get result string into javascript array
我希望使用jqplot插件(http://www.jqplot.com/tests/pie-donut-charts.php)来生成一个饼状图,但是我很难从我的$get函数中获得结果,jqplot函数将接受为可用的数据。
您可以在上面的jqplot链接中看到,我需要如何创建用于显示饼状图的数据变量。
这是我的$。获取当前返回字符串的函数:
//data is returned as a string: 'some_field_name',10,'some_other_field,33 etc
$.get("notesajax.php", {month:monthFilter, area:areaFilter}, function(data) {
var arr = data.split(",");
var results = [];
for (var i = 0; i < arr.length; i++) {
mini = [];
mini[arr[i]] = "'"+arr[i]+"',"+arr[i+1];
results.push(mini);
i++;
}
为方便参考,这里是jqplot函数,包括在开始处定义的'data'变量,以说明jqplot期望如何接收数据。
//this variable is just for illustrative purposes
var data = [
['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14],
['Out of home', 16],['Commuting', 7], ['Orientation', 9]
];
var plot1 = jQuery.jqplot ('chartdiv', [results],
{
seriesDefaults:
{
// Make this a pie chart.
renderer: jQuery.jqplot.PieRenderer,
rendererOptions: {
// Put data labels on the pie slices.
// By default, labels show the percentage of the slice.
showDataLabels: true
}
},
legend: { show:true, location: 'e' }
}
);
然而,到目前为止,我无法将$get返回的数据转换为jqplot函数将接受的格式。
var field, value, data = [], str = "'some_field_name',10,'some_other_field,33";
var arr = str.split(',');
// just add 2 to each iteration to get every second item (last argument is i += 2):
for (var i = 0; i < arr.length; i += 2) {
field = arr[i].replace(/'/g, ""); // replace ', because otherwise your string will be "'some_field_name'"
value = parseInt(arr[i+1], 10); // parseInt because you want numbers, but got a string
data.push([field, value]); // push into your data-array an array with your field and value
}
jsfiddle here: http://jsfiddle.net/wLxyZ/
您正在生成错误的数组。你应该直接从服务器发送JSON对象,这是推荐的和简单的,或者使你的解析脚本ok。
$.get("notesajax.php", {month:monthFilter, area:areaFilter}, function(data) {
var arr = data.split(",");
var results = [];
for (var i = 0; i < arr.length; i++) {
var mini = new Array();
mini.push(arr[i]);
mini.push(arr[i+1]);
results.push(mini);
}
我玩了你的代码,来到以下解决方案,有几个问题与你的原始代码,特别是如何构建你的迷你数组
var arr = ['some_field_name',10,'some_other_field',33];
var results = [];
for (var i = 0; i < arr.length; i+=2) {
var mini = ["'"+arr[i]+"'",+arr[i+1]];
results.push(mini);
}
alert(results[0][0]);
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 将Javascript数组发送到控制器ASP.NET MVC
- JavaScript数组包含一个值
- 将JavaScript数组传递给函数
- javascript:数组循环
- 将数据存储在javascript数组中以供进一步使用
- 在Javascript数组中查找绝对最大值
- JavaScript数组优化以提高性能
- 在javascript数组中分散数字
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript数组动态
- javascript数组元素是否知道其封闭数组
- 将 JSON 数组解析为 JavaScript 数组
- 将Transform和Instance Variable转换为对象的JavaScript数组
- 使用Web Html表单创建Javascript数组
- 从重复的javascript数组结果集中只获取一行
- 如何为Javascript数组()的使用准备PHP变量
- Javascript数组和函数
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)