Solution Review: Club Entry System
This lesson will explain the solution to the problem in the previous lesson.
We'll cover the following...
We'll cover the following...
Solution review #
Node.js
const filter = func => arr => arr.filter(func);const map = func => arr => arr.map(func);const funcCompose = (...funcs) => args => funcs.reduceRight((arg, fn) => fn(arg), args);function test(customers){const ans = funcCompose(map(x => x.name),filter(x => x.age >= 18))(customers)return ans}const customers = [ { name: "Hermoine", age: 15 },{ name: "Ron", age: 18 },{ name: "Harry", age: 24 },]console.log(test(customers))
Explanation #
You were given two functions, filter and map (lines 1 & 2).
-
filterapplies the function,func, on each element of the array,arr, on which it is called. -
mapapplies the function,func, on each element of the array,arr, on which it is called.
On line 4, we define our funcCompose function.
const funcCompose = (...funcs) => args => funcs.reduceRight((arg, fn) => fn(arg), args);
It accepts multiple functions, funcs. We use the spread operator here so that it can store any number of functions passed inside of an array. In our case, we are passing two functions, map and filter.
In function composition, the result of one function is passed ...