2016-03-15 54 views
2

鑑於屬性的元件上的陣列(從控制檯窗口) enter image description hereramda濾波器僅返回第一結果

我需要retreive所有「ID」,或「名稱」屬性

執行此操作時:

R.filter(R.where({name: R.or(R.equals('name'), R.equals('id'))}), attr) 

我得到'name'屬性。
enter image description here

當正是如此反轉 '或' 參數:

R.filter(R.where({name: R.or(R.equals('id'), R.equals('name'))}), attr) 

我得到的 'id' 屬性: enter image description here

過濾方法應該返回所有配套項目陣列 - 我錯過什麼**

回答

3

R.or期待兩個布爾參數,儘管您傳遞了兩個函數(R.equals),它們返回布爾值。你應該能夠使用R.or替換爲R.either,這需要你擁有兩個謂詞函數,而且你的過濾器應該能夠滿足你的期望。

+0

謝謝您的回答,這是絕對正確的,因爲我已經措辭。我真的需要知道,如果有一個等價的方法,不只是兩個參數。像'any',這似乎與'or'有相同的問題。有沒有這樣的方法? – Jim

+0

找到了'anyPass'這個技巧。謝謝! – Jim