createSelector
by Artem
JavaScript
'use strict';
function createSelector(...args) {
const cb = args[args.length - 1];
const results = [];
return function(state) {
args.slice(0, -1).forEach(fn => {
results.push(fn(state));
});
return cb.apply(null, results);
};
}
const state = {
users: ['Artem', 'Illuxa'],
ages: [19, 25],
};
const selector = createSelector(
state => state.users,
state => state.ages,
(users, ages) => {
console.log('Users: ', users);
console.log('Ages: ', ages);
}
);
selector(state);