reselect quick implementation
function createSelector(...funcs) {
const resultFunc = funcs.pop();
const selector = function() {
const params = [];
const length = funcs.length;
for(let i=0;i<length;i++) {
params.push(funcs[i].apply(null, arguments));
}
return resultFunc.apply(null, params);
}
return selector;
}
const total = createSelector(
state => state.a,
state => state.b,
(a, b) => a + b
);
total({
a: 1,
b: 2
});
https://github.com/reactjs/reselect/blob/master/src/index.js
foreach is way more slower than for loop in sparse arrays http://jsfiddle.net/ssSt5/2/