2012-06-16 35 views
6

Có ai có cách tiếp cận để lọc thứ nguyên đối tượng crossfilter trên nhiều giá trị không? Một cái gì đó nhưBộ lọc cho nhiều giá trị rời rạc trong bộ lọc chéo

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

hoặc

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

... nhưng không phải là hình thức phạm vi của nó ...

hoặc

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

... nhưng không có phần thanh toán bù trừ .

hoặc một workaround/cách tiếp cận tương đương không sử dụng

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

??

Hoặc tôi có thiếu thứ gì đó trong API không?

Cảm ơn!

Larry

Trả lời

1

Có vẻ như không được bất cứ điều gì trong API, nhưng nếu bạn muốn tránh filterRange, bạn có thể để nó với hai bộ lọc cơ bản và concating kết quả:

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

cảm ơn, điều đó sẽ nhận được các phần tử đã hợp nhất, nhưng rất tiếc sẽ không cung cấp thứ nguyên đa lọc cần thiết, trong trường hợp của tôi được tham chiếu bởi nhiều chế độ xem. vẫn có thể phải tiếp cận cách giải quyết của bạn. cổ vũ. –

2

Các sau yêu cầu kéo có vẻ như nó sẽ đáp ứng nhu cầu của bạn, nhưng nó vẫn chưa được sáp nhập vào.

Multiple arguments to filter result in union of filter operations

Khi sáp nhập bạn sẽ có thể làm điều gì đó như sau.

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

Điều này sẽ dẫn đến kết hợp tất cả các tiêu chí lọc.

+0

yep, có cùng con trỏ sớm hơn từ bản thân thuyền trưởng D3 (mbostock). Hy vọng rằng tính năng này sẽ sớm hạ cánh. cảm ơn! –

11

Tôi đang gặp phải sự cố tương tự. Cách tôi giải quyết nó là tôi đã viết một chức năng lọc mà sẽ kiểm tra xem kích thước nằm trong một mảng cụ thể hay không.

// 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; 
}); 

Điều này sẽ kiểm tra xem giá trị có nằm trong mảng đó và lọc cho phù hợp hay không.

Hy vọng điều này sẽ hữu ích.

+0

Người đàn ông của tôi. Tôi mặc dù nó và bạn nói nó. Giải pháp tốt. – Koba

+0

Giải pháp tuyệt vời.- @ pr – singh

+0

Giải pháp tuyệt vời! –

Các vấn đề liên quan