2017-02-18 18 views
0

Я пытаюсь динамически установить тип данных для каждого ключа в моем объекте.Как установить тип данных диаграммы c3.js с помощью ключей из моего объекта данных?

Объект выглядит следующим образом:

{"x":["2016-01-1", "2016-01-02", etc], "uniqueKey":[4234, 4324, etc], "uniqueKey2":[432, 543, etc], ... } 

Количество ключей и имен будут меняться в зависимости от того, какие данные я хватаю, но мне нужно задать тип данных диаграммы для каждого ключа.

function show_chart1(data) { 

    var json = JSON.parse(data); 

    var chart = c3.generate({ 
     bindto: '#chart', 
     data: { 
      x: 'x', 
      xFormat: '%Y-%m-%d', 

      json: json, 

      #### need these to be the unique key names 
      types: { 
       uniqueKey: 'area-spline', 
       uniqueKey2: 'area-spline' 
       ... 
      }, 
      groups: [[uniqueKey, uniqueKey2, etc]] 
     }, 
     axis: { 
      x: { 
       type: 'timeseries', 
       tick: { 
        format: '%Y-%m-%d' 
       } 
      } 
     }  
    }); 
}; 

Как это сделать?

ответ

1

Вы можете создать другой объект для своих типов/групп. Если у вас нет некоторых вариантов диаграмм, вы можете просто использовать type: 'area-spline' вместо того, чтобы каждый вход был одним и тем же.

Когда вы знаете, что ваши уникальные ключи или что они похожи (ВЕ регулярных выражений), вы можете сделать это:

var typeDefinition = {} 
for(var key in json){ 

    // here you can use if or switch to apply certain types 
    if(key <your statement>){ 
     typeDefinition[key] = 'area-spline'; 
    } 

} 
<...> 
types: typeDefinition 
<...>