moy-fp
Version:
A functional programming library.
23 lines (20 loc) • 428 B
JavaScript
import curry from '../Function/curry'
/**
* (a -> String) -> [a] -> [a] -> [a]
*/
const intersectionBy = curry(
(fn, list2, list1) => {
const intersectionObj = {},
result = []
for(let item of list2){
intersectionObj[fn(item)] = true
}
for(let item of list1){
if(intersectionObj[fn(item)]){
result.push(item)
}
}
return result
}
)
export default intersectionBy