Published
Edited
Mar 13, 2020
Insert cell
md`# Arrays Workout`
Insert cell
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 }
];
Insert cell
inventors[4].last
Insert cell
//list of inventors born in the 1500s
inventors.filter(inventor => inventor.year>=1500 && inventor.year<1600)
Insert cell
//list of inventors born not in the 1500s
inventors.filter(inventor => inventor.year<1500 || inventor.year>=1600)
Insert cell
//list of inventors who have an a in their name (bonus, case insensitive, both names)
inventors.filter(inventor => inventor.first.toLowerCase().includes('a'))
Insert cell
//list of inventors who lived longer than 50 years
inventors.filter(inventor => inventor.passed-inventor.year>50)
Insert cell
//find an inventor from the 1800's who has an i in their last name
inventors.find(inventor => inventor.year>=1800 && inventor.year<1900 && inventor.last.toLowerCase().includes('i'))
Insert cell
//get every inventor's initials (bonus, include middle name)
inventors.map(inventor => inventor.first.charAt(0) + inventor.last.charAt(0))
Insert cell
//get the total lifespan of all inventors together
inventors.reduce((total, inventor) => total += inventor.passed-inventor.year,0)
Insert cell
inventors.sort((inventor1, inventor2) => inventor1.year - inventor2.year)
Insert cell
inventors.sort((inventor1, inventor2) => inventor1.first.localeCompare(inventor2.first))
Insert cell
//sort by length of last name
inventors.sort((inventor1, inventor2) => inventor1.last.length - inventor2.last.length)
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more