Highchart,是否可能在“系列”部分中包含“ for循环”?

时间:2018-10-04 06:38:52

标签: javascript php laravel highcharts

当前,我正在使用Stacked and grouped column高图表,该图表可以看到代码in this jsfiddle link.。我的目标是在series部分中循环,以便生成堆叠的条形图。我正在为此系统使用laravel框架。

当前代码(jsfiddle)

    series: [
    {
        name: 'John',
        color: 'olive',
        data: [5, 3, 4, 7, 2],
        stack: '2014',
        xAxis: 1
    },
    ...

尝试输入的代码(这是这样做的方法吗?)

var temp = ["john", "olive", "[5, 3, 4, 7, 2]", "2014", 1];

series: [
for(var i=0; i<3; i++)
{
    {
        name: temp[0],
        color: temp[1],
        data: temp[2],
        stack: temp[3],
        xAxis: temp[4]            

    },
}

编辑@Lucky Saini答案的回复

enter image description here

4 个答案:

答案 0 :(得分:1)

您不能以这种方式在数组中编写代码,但是可以创建IIFE函数:

    series: (function() {
        var series = [],
            temp = ["john", "olive", "[5, 3, 4, 7, 2]", "2014", 1];

        for (var i = 0; i < 3; i++) {
            series.push({
                name: temp[0],
                color: temp[1],
                data: JSON.parse(temp[2]),
                stack: temp[3],
                xAxis: temp[4]

            });
        }

        return series;
    }())

实时演示:http://jsfiddle.net/BlackLabel/01qzg4e5/

答案 1 :(得分:0)

否,您不能在方法/函数内部使用for循环。

相反,您可以将其循环到函数外部,并将其存储在数组中。并将其传递给series参数来使用该数组。

答案 2 :(得分:-1)

我建议在php中构造序列数组并使用json encode php array 然后使用JSON Parse in javascript

解析javascript中的json数据

另一种方法是,在您的.blade文件中     series: <?php echo json_encode(<php array here>) ?>

让我知道它是否对您有用:)

答案 3 :(得分:-1)

您可以使用这种方法使用for循环在series变量中添加数据。

var temp = ["john", "olive", "[5, 3, 4, 7, 2]", "2014", 1];

series = [];
for(var i=0; i<3; i++)
{
    item = {
        name: temp[0],
        color: temp[1],
        data: temp[2],
        stack: temp[3],
        xAxis: temp[4]            

    };

    series.push(item);
}

console.log(series);