2012-06-16 18 views
6

Czy ktoś ma podejście do filtrowania wymiaru obiektu crossfilter na wielu wartościach? Coś jakFiltr wielu dyskretnych wartości w filtrze poprzecznym

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

lub

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

... ale nie forma zakres tego ...

lub

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

... ale bez części rozliczeniowej .

lub równoważny obejście/podejście nie stosując

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

??

A może brakuje mi czegoś w interfejsie API?

Dzięki!

Larry

Odpowiedz

1

Tam nie wydaje się być coś w API, ale jeśli chcesz uniknąć filterRange, można by go z dwóch podstawowych filtrów i concating wyników:

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

dziękuję, to dostanie scalone elementy, ale niestety nie dostarczy niezbędnego filtru wielowymiarowego, do którego w moim przypadku odwołuje się wiele widoków. wciąż może wymagać podejścia do obejścia. Twoje zdrowie. –

2

następujący wniosek wyciągnąć wygląda to rozwiązać swoje potrzeby, ale nie została jeszcze scalona.

Multiple arguments to filter result in union of filter operations

Gdy połączył byś być w stanie zrobić coś takiego.

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

Co spowodowałoby połączenie wszystkich kryteriów filtrowania.

+0

Tak, otrzymałem taki sam wskaźnik wcześniej od samego kapitana D3 (mbostock). Mam nadzieję, że funkcja wkrótce wyląduje. dzięki! –

11

Miałem do czynienia z podobnym problemem. Sposób, w jaki to rozwiązałem, polegał na tym, że napisałem funkcję filtrującą, która sprawdzi, czy wymiar leży w konkretnej tablicy, czy nie.

// Array of things you want to filter 
var f = ["cash", "visa"]; 
// Assuming "dim" is our dimension 
dim.filter(function(d){ 
    return f.indexOf(d) > -1; 
}); 

Spowoduje to sprawdzenie, czy wartość leży w tej macierzy i odpowiednio filtrowana.

Mam nadzieję, że to pomoże.

+0

Mój człowiek. Chociaż to mówiłem. Dobre rozwiązanie. – Koba

+0

Świetne rozwiązanie. - @ pr – singh

+0

Świetne rozwiązanie! –

Powiązane problemy