Array Cardio

Being able to edit and arange data in js is super useful espically when dealing with external sources or internal. This challenge goes through the following methods.

  1. array.prototype.filter()
  2. array.prototype.map()
  3. array.prototype.reduce()
  4. array.protoype.sort()

Example data used:

   const inventors = [
  { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 },
  { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 },
  { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 },
  { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 },
  { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 },
  { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 },
  { first: 'Max', last: 'Planck', year: 1858, passed: 1947 },
  { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 },
  { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 },
  { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 },
  { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 },
  { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
];

filter()

The filter method creates a new array with the items being returned that passed the test.

  const inventorYear = inventors.filter(inventor => inventor.year > 1500 && inventor.year < 1600 );
console.table(inventorYear);

map()

The map method returns a new array the same length as the original passed in. It will always return the same amount of items passed in.

  const inventorNames = inventors.map(inventor => `${inventor.first}      ${inventor.last}`);
console.table(inventorNames);

reduce()

The reduce method applies a function which accumulates and then reduces to a single value.

  const totalYears = inventors.reduce((total, inventor) => {
  return total + (inventor.passed - inventor.year);
},0);

console.log(totalYears);

sort()

The sort method can be used on its own to sort items alphabetically, by converting array items into strings and returning a new array. It can be used to compare items also.

  const totalYears = inventors.reduce((total, inventor) => {
  return total + (inventor.passed - inventor.year);
},0);

console.log(totalYears);

Completed exercises

See the Pen Array cardio by Harry Beckwith (@fun) on CodePen.


237 0 0