我试图动态设置对象中每个键的数据类型。
该对象如下:
{"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'
}
}
}
});
};
我该怎么做?
答案 0 :(得分: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
<...>