Iteration Functions

forEach

The reason to use forEach is have side effects for each item in an array.

Examples

  • Log each item
  • Add something to an array or string for each item
[1, 2, 3].forEach(function(num) {
  console.log(num);
});

// => 1
// => 2
// => 3

map

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map The reason to use map is to transform each item in the array and get a new array.

Etiquette says that map should never have side effect, though this isn't enforced in any way.

[1, 2, 3].map(function(num) {
  return num * 2;
});

// => [2, 4, 6]

filter

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

The reason to use filter is to get a new array that only contains items that match the criteria you're looking for.

The internal function must return true or false.

Etiquette says that filter should never have side effect, though this isn't enforced in any way.

[1, 2, 3].filter(function(num) {
  return num >= 3;
});
// => [3]

reduce

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

The reason to use reduce is to "reduce" an array of values or objects into a single value or object.

// sum with reduce
[1, 2, 3].reduce(function(total, current) {
  return total + current;
});
// => 6