Цикл в руководствах amCharts

В своем JS я пытаюсь добавить цикл for в руководства amCharts, чтобы иметь 3 метки направляющих и их значения, передаваемые из файла представлений.

В настоящее время я работаю с этим:

"guides": [{
                "dashLength": 6,
                "inside": true,
                "label": graphConfig.dataProvider[0].label[0],
                "labelRotation":90,
                "lineAlpha": 1,
                "category": graphConfig.dataProvider[0].val[0],
            }, {
                "dashLength": 6,
                "inside": true,
                "label": graphConfig.dataProvider[0].label[1],
                "labelRotation":90,
                "lineAlpha": 1,
                "category": graphConfig.dataProvider[0].val[1],
            }, {
                "dashLength": 6,
                "inside": true,
                "label": graphConfig.dataProvider[0].label[2],
                "labelRotation":90,
                "lineAlpha": 1,
                "category": graphConfig.dataProvider[0].val[2],
            }],

Он работает нормально, но если мне нужно его масштабировать, мне нужен цикл. Я ищу что-то вроде этого:

"guides": [
    for (var i=0; i<3; i++)
     {
        {
                    "dashLength": 6,
                    "inside": true,
                    "label": graphConfig.dataProvider[0].label[i],
                    "labelRotation":90,
                    "lineAlpha": 1,
                    "category": graphConfig.dataProvider[0].val[i],
                },
      }

Но это не работает. Помогите мне, пожалуйста.


person Viswajith Kalavapudi    schedule 04.11.2015    source источник


Ответы (2)


Я полагаю, вы можете создать функцию, которая будет генерировать эти руководства для вас:

function generateGuides( graphConfig ) {
  var guides = [];
  for ( var i = 0; i < 3; i++ ) {
    guides.push( {
      "dashLength": 6,
      "inside": true,
      "label": graphConfig.dataProvider[ 0 ].label[ i ],
      "labelRotation": 90,
      "lineAlpha": 1,
      "category": graphConfig.dataProvider[ 0 ].val[ i ],
    } );
  }
  return guides;
}

Затем просто используйте этот вызов функции в конфигурации вашей диаграммы:

"guides": generateGuides( graphConfig ),
person martynasma    schedule 04.11.2015

эй, эта идея сработала, и я сделал что-то вроде этого

"guides": (function(){
            var guideArray = []
            for (var i = 0; i < 3; i++) {

                guideArray.push({
                    "dashLength": 6,
                    "inside": true,
                    "label": graphConfig.dataProvider[0].label[i],
                    "labelRotation":90,
                    "lineAlpha": 1,
                    "category": graphConfig.dataProvider[0].val[i], 
                  })
                }
            return guideArray
            }()),
person Viswajith Kalavapudi    schedule 04.11.2015