填充数组

时间:2016-10-28 17:14:12

标签: javascript jquery highcharts

我有以下ajax调用:

 $.ajax({
    type: 'POST',
    url: '../ws_BQS.asmx/ResultadosDimensionalByDate',
    data: '{"fecha":"' + fecha + '"}',
    dataType: 'json',
    contentType: 'application/json',
    timeout: 600000,
    error: function (xhr) {

    },
    success: function (data) {
        var t = data.d;
        var split;
        var datos = t.split(",");

        //Thickness
        for (var i = 0; i < datos.length; i++) {
            array1.push(datos[i]);
            i++;
            i++;
            i++;
            //alert(array1);
        }
        //Width
        for (var w = 0; w < datos.length; w++) {
            w++;
            //array2.push(datos[w]);
            w++;
            w++;
        }
        alert(array1);

        chart(array1);
    }
});

警告信息是(1,5,9,14,18),这是我的期望,但问题是我的图表功能没有做我想要的,这里是代码:

function chart(arreglo) {


$('#Grafica').highcharts({
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Inspeccion Dimensional'
    },
    xAxis: {
        categories: ['Pieza 1', 'Pieza 2', 'Pieza 3', 'Pieza 4', 'Pieza 5']
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Resultados'
        }
    },
    legend: {
        reversed: true
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    },
    series: [{
        name: 'Thickness',
        data: arreglo
    }, {
        name: 'Width',
        data: [2, 2, 3, 2, 1]
    }, {
        name: 'Length',
        data: [2, 2, 3, 2, 1]
    }, {
        name: 'Diameter',
        data: [3, 4, 4, 2, 5]
    }]
});

alert(arreglo);
}

我的警报消息与我的ajax调用相同,所以没问题,问题是当我在arreglo选项中使用我的var series时,我没有收到任何错误消息,只是似乎是arreglo it's empty,我试图解决此问题,但我发现这可能是array1.push(datos[i]);的问题,因为如果array1.push(values manually)它有效,我该如何解决?

更新

这是一个Fiddle来查看我的问题。

更新#2

这些是我获取数据的方式:

data: console.log = 1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21

var datos = t.split(",");
console.log(datos) = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"]

for loop
console.log(array1) = ["1", "5", "9", "14", "18"]

chart function
console.log(arreglo) = ["1", "5", "9", "14", "18"]

有了这个,我可以看到用&#34;&#34;接收数据是错误的,那么我怎么能改变这个呢?

1 个答案:

答案 0 :(得分:2)

你的数组必须包含数字,而不是它包含字符串,这就是系列看起来没有任何数据的原因。

将字符串解析为数字,并按预期工作。

Group Amount
  a    500
  b    600
  c    300

示例:https://jsfiddle.net/nvf6vcn5/4/