获取 json 数据中的值计数并根据 c3 table 的值创建变量
Get count of values in json data and create variable based on those for c3 table
我正在尝试创建一个动态圆环图,因为我不知道将有多少变量进入,但数据集将在 10,000 个中,变量在 1 到 20 个之间。
我已经将我的数据放入一个数组中,如下所示。
如何为数组中的每个唯一元素及其计数创建一个 var
,即 var 1 = [sys1, 94]
或类似物,以便它们可以在列和颜色配置中使用
原始数据
res.data[{system:'sys1'},
{system:'sys1'},
{system:'sys2'},
{system:'sys1'},
{system:'sys3'},
{system:'sys3'}]
获取密钥
var array_elements = []
angular.forEach(res.data, function(value, key){
if (array_elements.indexOf(value.system) === -1){
array_elements.push(value.system)
}
})
array_elements = ["sys1", "sys2", "sys3"];
配置
var donutData = {
type : 'donut',
colors: {
Cats: $.pfPaletteColors.blue,
Hamsters: $.pfPaletteColors.green,
Fish: $.pfPaletteColors.orange,
Dogs: $.pfPaletteColors.red
},
columns: [
['Dogs', 2],
['Cats', 2],
['Fish', 3],
['Hamsters', 1]
],
你可以这样做:
var data = [{
system: 'sys1'
}, {
system: 'sys1'
}, {
system: 'sys2'
}, {
system: 'sys1'
}, {
system: 'sys3'
}, {
system: 'sys3'
}];
var tmp = {};
data.forEach(function(x) {
tmp[x.system] = (tmp[x.system] || 0) + 1;
});
var keys = Object.keys(graphData);
var finalData = [];
for(var i = 0; i < keys.length; i++) {
var x = [];
x.push(keys[i]);
x.push(graphData[keys[i]]);
finalData.push(x);
}
console.log(finalData);
我正在尝试创建一个动态圆环图,因为我不知道将有多少变量进入,但数据集将在 10,000 个中,变量在 1 到 20 个之间。
我已经将我的数据放入一个数组中,如下所示。
如何为数组中的每个唯一元素及其计数创建一个 var
,即 var 1 = [sys1, 94]
或类似物,以便它们可以在列和颜色配置中使用
原始数据
res.data[{system:'sys1'},
{system:'sys1'},
{system:'sys2'},
{system:'sys1'},
{system:'sys3'},
{system:'sys3'}]
获取密钥
var array_elements = []
angular.forEach(res.data, function(value, key){
if (array_elements.indexOf(value.system) === -1){
array_elements.push(value.system)
}
})
array_elements = ["sys1", "sys2", "sys3"];
配置
var donutData = {
type : 'donut',
colors: {
Cats: $.pfPaletteColors.blue,
Hamsters: $.pfPaletteColors.green,
Fish: $.pfPaletteColors.orange,
Dogs: $.pfPaletteColors.red
},
columns: [
['Dogs', 2],
['Cats', 2],
['Fish', 3],
['Hamsters', 1]
],
你可以这样做:
var data = [{
system: 'sys1'
}, {
system: 'sys1'
}, {
system: 'sys2'
}, {
system: 'sys1'
}, {
system: 'sys3'
}, {
system: 'sys3'
}];
var tmp = {};
data.forEach(function(x) {
tmp[x.system] = (tmp[x.system] || 0) + 1;
});
var keys = Object.keys(graphData);
var finalData = [];
for(var i = 0; i < keys.length; i++) {
var x = [];
x.push(keys[i]);
x.push(graphData[keys[i]]);
finalData.push(x);
}
console.log(finalData);