我正在掌握使用除簡單的map
或兩個以外的函數編程。我有一種情況,我希望能夠根據這些對象的特定字段篩選對象數組中的某些元素。這是一個人爲的例子,但這裏有:執行數組上的函數列表
我有一個字段定義的列表,我想根據他們的標題提取他們兩個。
const toSearch = [
{ title: "name", description: "Their name" },
{ title: "age", description: "Their age" },
{ title: "gender", description: "Their gender" }
]
const fieldsToFind = ["name", "age"]
let filterObjects = R.map(R.objOf('title'), fieldsToFind)
let filterFuncs = R.map(R.whereEq(R.__), filterObjects)
let found = R.map(R.filter, filterFuncs)
console.log("Filter objects:", JSON.stringify(filterObjects))
console.log("Filter functions:", JSON.stringify(filterFuncs))
console.log("Found:", found[0](toSearch))
console.log("Found:", found[1](toSearch))
如果我運行這個,最後輸出的是toSearch
兩個要素,我正在尋找,但它不是完全整齊。我一直試圖讓另一個map
工作來手動執行found
元素,但我也覺得,即使導致到那一點,我正在採取過於迂迴的路線。
雖然這是一個人爲的例子,是否有一個完美的方式來實現這一功能風格?
最後一個很棒!只是我正在尋找的那種整潔! – chooban
是的,我真的很喜歡['where'](http://ramdajs.com/docs/#where)讀取! –