代码之家  ›  专栏  ›  技术社区  ›  LearnProgramming

Highchart,有没有可能在“series”部分中有一个“for loop”?

  •  0
  • LearnProgramming  · 技术社区  · 6 年前

    目前我正在使用 Stacked and grouped column 可以看到代码的海图 in this jsfiddle link. 我的目标是在 series 剖面,以便生成堆叠的条形图。我在这个系统中使用的是laravel框架。

        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 answer编辑回复

    enter image description here

    4 回复  |  直到 6 年前
        1
  •  2
  •   ppotaczek    6 年前

    不能在数组中以这种方式编写代码,但可以创建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/

        2
  •  0
  •   routj    6 年前

    不,不能在方法/函数中使用for循环。

        3
  •  -1
  •   magegaga.com    6 年前

    json encode php array 然后使用 JSON Parse in javascript

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

        4
  •  -1
  •   Lakhwinder Singh    6 年前

    可以使用此方法在中添加数据 series 使用for循环的变量。

    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);