2012-06-16 3 views
6

crossfilter 개체 차원을 여러 값으로 필터링하는 접근 방법이 있습니까?크로스 필터의 다중 이산 값을위한 필터

.filterExact(["cash","visa"]) 

또는

.filter(["cash","visa"]) 

...하지만 그것의 범위 양식처럼 뭔가 ...

또는

.filterAll(["cash","visa"]) 

...하지만 청산 부분없이 .

또는 동등한 대안/접근

.filterRange(["cash","visa"]) 

사용하지 ??

아니면 API에서 뭔가 빠졌습니까?

감사합니다.

래리

답변

1

거기 API에서 아무것도 될 것 같지 않습니다,하지만 당신은 filterRange을 피하려면, 당신은 두 가지 기본 필터와 concating 결과와 그것을 위해 할 수있는 :

var paymentsByType = payments.dimension(function(d) { return d.type; }), 
cashAndVisaPayments = Array.prototype.concat(paymentsByType.filter('cash').top(Infinity),paymentsByType.filter('visa').top(Infinity)) 
+0

감사합니다. 병합 된 요소를 가져 오지만 불행히도 필자의 경우 다중 뷰로 참조되는 필요한 다중 필터링 된 치수를 제공하지 않습니다. 여전히 해결 방법을 취해야 할 수도 있습니다. 건배. –

2

다음 풀 요구가 당신의 요구를 충족 것처럼 보이지만 그것은 아직 통합되지 않았습니다.

Multiple arguments to filter result in union of filter operations

일단 당신이하고자 합병 다음과 같이 할 수 있어야합니다.

data.total.filter("cash", "visa"); 

그러면 모든 필터 기준이 결합됩니다.

+0

예, Captain D3 자신 (mbostock)에서 같은 포인터를 가져 왔습니다. 잘만되면이 기능이 곧 제공 될 것입니다. 감사! –

11

비슷한 문제가 발생했습니다. 내가 해결 한 방법은 치수가 특정 배열에 있는지 여부를 확인하는 필터 함수를 작성한 것입니다.

그러면 값이 해당 배열에 속하는지 확인하고 그에 따라 필터링합니다.

희망이 도움이됩니다.

+0

내 남자. 나는 그것과 당신이 그것을 말했다. 좋은 해결책. – Koba

+0

그레이트 솔루션 .- @ pr – singh

+0

그레이트 솔루션! –