Crossfilter分组过滤的密钥

时间:2017-06-12 13:01:47

标签: crossfilter

我有一些json,例如:

data = {
         "name":"Bob","age":"20",
         "name":"Jo","age":"21",
         "name":"Jo","age":"22",
         "name":"Nick","age":"23"
       }

接下来,我使用crossfilter,创建维度并过滤它:

let ndx = crossfilter(data); 
let dim = ndx.dimension(d => d.name).filter(d !== "Jo");
//try to get filtered values
let filtered = dim.top(Infinity); // -> return 2 values where 'name'!='Jo'
//"name":"Bob","age":"20"
//"name":"Nick","age":"23"

let myGroup = dim.group(d => {
    if(d === 'Jo') {
      //Why we come here? This values must be filtered already
    }
})

如何过滤我的维度,并且不会在&d9..gim'

上显示这些值?

1 个答案:

答案 0 :(得分:1)

不确定您使用的是哪个版本,但在current version of Crossfilter中,创建新组时,所有记录首先添加到组中,然后删除过滤后的记录。因此,对于所有记录,组访问者将至少运行一次。

为什么我们这样做?因为对于某些类型的分组逻辑,组对于“查看”范围内所有记录的完整图片非常重要。

无论如何,组访问器可能会运行所有记录(甚至是已过滤的记录)以构建组索引,但我不记得了。