Map, Reduce and Filter are three functions which operate on a given array of values.
- Map function works like a projection, where we can project each value from the input set into some transformed output.
- It takes a callback function which has two parameters - the current value and the index of the current value and expects a return value from the callback.
let arr = [1, 2, 3, 4, 5];
let result2 = arr.map(function (current, index) {
return current % 2;
});
// output:
[ 1, 0, 1, 0, 1 ]
- Reduce function works like an aggregate function, where we can create an aggregation from a given input set.
- It takes a callback function which has three parameters - the previous value, the current value and the current index and expects a return value from the callback, which is applied onto the next array element iteration.
let result1 = arr.reduce(function (prev, current) {
console.log(`${prev}, ${current}`);
return prev + current;
});
// output:
1, 2
3, 3
6, 4
10, 5
result1: 15
- Filter function is an extraction function where the input array is filtered based on a condition.
- It takes a callback function which has two parameters - the current value and the current index and expects a boolean return value which represents whether the current element satisfies the condition or not.
let result3 = arr.filter(function (current, index) {
return current % 2 === 0;
});
// output:
[ 2, 4 ]