如何通过dc.js中任何维度的自定义值过滤记录?

时间:2019-12-08 06:58:25

标签: dc.js crossfilter

如何从任何维度删除自定义记录。在以下情况下,如何仅过滤类别“ S”,并允许其余的维度出现?

示例

let data = [
{category:'A',value:10},
{category:'B',value:11},
{category:'S',value:12},
{category:'A',value:14},
{category:'B',value:12},
]

let ndx = crossfilter(data);

let dim= ndx.dimension(function(d){
    if(d.category != "S") return d.category;
})

上面的代码进入循环,应用程序崩溃。我不想为此维度创建单独的数据,而是将其与其他交叉过滤器链接。

1 个答案:

答案 0 :(得分:1)

我想这很简单,发布问题后我没有做任何研究。

只需操纵要传递到图表的组参数。代码是这样的。

由于我试图通过键删除该值,因此我们首先要编写一个函数以供进一步使用。

function removeByKey(source_group, value) {
    return {
        all: function() {
            return source_group.all().filter(function(d) {
                return d.key != value;
            });
        }
    };
}

完成此操作后,您将在调用图表的组方法的地方调用此方法。 removeByKey方法的第一个参数是组本身,第二个参数是应该从图表中删除的键值。

 chart
   .dimension(dimension_data)
   .group(removeByKey(dimension_data_group, 'S'))

谢谢:)

相关问题