2016-03-10 13 views
5

Tôi cảm thấy theo cách của mình mặc dù lập trình hàm với Ramda và tôi đang vật lộn với một thứ gì đó nghe có vẻ dễ dàng.Áp dụng hợp lý KHÔNG cho propEq và lọc trong ramda

Tôi muốn tất cả các mục nhập trong một mảng trong đó thuộc tính không phải là bằng một giá trị.

Ví dụ trong js tinh khiết

const filtered = source.filter(entry => entry.name !== 'something'); 

Trong Ramda có một propEq vì vậy tôi có thể dễ dàng có được tất cả các yếu tố đó làm phù hợp với một giá trị như

const filtered = R.filter(R.propEq('name','something'),source); 

Nhưng tôi có thể không nhìn thấy làm thế nào để làm nghịch đảo của điều đó, để chỉ trả lại các giá trị không bằng một giá trị.

Tôi chắc chắn đây phải là rất dễ dàng nhưng tôi đang gặp khó khăn để nhìn thấy một xây dựng trong chức năng để làm điều đó, gần nhất tôi có thể đưa ra là:

const others = R.filter(rate => rate.name !== name,res.rates); 

Nhưng tôi chắc chắn rằng có phải là một cách tốt hơn?

Trả lời

7

Vâng, Ramda có ngược của filter gọi reject:

R.reject(R.propEq('name', 'something'))(source) 

Bạn có thể thấy điều này trên Ramda REPL

+0

nhờ tuyệt vời, tôi đã chắc chắn có một cách đơn giản để làm việc đó :) – antfx

+2

Xem thêm ['R.complement'] (http://ramdajs.com/docs/#complement). – davidchambers

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