数据表中数组元素的表示
Array elements representation in data table
我有一个数据集,其中一些字段值是数组,我想使用交叉过滤器和d3.js或dc.js来显示这个数据表。
我试过用下面的代码:
var data = [
{"Name":"ajay","interests":[{"games":"vally"},{ "games":"cricket"}]},
]
var assetDataCF = crossfilter(data );
var dimByHostName = assetDataCF.dimension(function(d){return d.Name; });
var apSecAdvConfig = dc.dataTable('#apSecAdvConfig');
apSecAdvConfig
.dimension(dimByHostName)
.group(function(d){ return "" })
.transitionDuration(1000)
.columns([
function(d) { return d.Name;},
function(d) { var s=d.interests,
a=[];
for(var i=0;i<s.length;i++)
{
a.push(d.s[i].games);
} return a;}
}];
显示表格如下:
-------------------------------
name --- games
-----------------------------
ajay --- vally,cricket
------------------------------
…但我想要的结果是:
name --- games
------------------------
ajay --- vally
-----------------------
ajay ---- cricket
------------------------
**********************************************
有谁知道如何实现这一点吗?
我们可以改变数据集
var data = [
{"Name":"ajay","interests":[{"games":"vally"},{ "games":"cricket"}]},
{"Name":"cyril","interests":[{"games":"football"}]},
];
var newData = [];
data.forEach(function (person) {
person.interests.forEach(function (interest) {
newData.push({
Name: person.Name,
interest: interest.games
})
})
})
上面的函数将使新数据集如下:
[{"Name":"ajay","interest":"vally"},
{"Name":"ajay","interest":"cricket"},
{"Name":"cyril","interest":"football"}]
张贴你的代码可以在上面创建的newData集上工作像这样:
var assetDataCF = crossfilter(newData );
//oldcode...
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 如何在ember数据模型中表示数组
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- JavaScript Unshift EACH 数组元素
- 如何在加号运算符之后选择数组元素的一部分
- 访问标记图标的图像数组元素
- JavaScript 合并相同的数组元素
- 数据表中数组元素的表示