Hello, I have a question about the reduce method, and why these two snippets achieve the same result, but have slightly different code.
My goal is to get the sum of every inventors age, which I have done but I am not sure which way is more correct!
Array:
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 },
];
MDN Docs does something like this:
const inventorsYears = inventors.reduce((total, inventor) => {
return total + (inventor.passed - inventor.year);
}, 0);
console.log(inventorsYears);
I guess I am having a hard time understanding what the 0 after the }, actually does. I know that it sets the total to 0, but how?
I did something like this, just setting the total to 0, right before the return statement. Is this incorrect or a bad practice? I’m getting the same result.
const inventorsYears = inventors.reduce((total, inventor) => {
total = 0;
return total + (inventor.passed - inventor.year);
});
console.log(inventorsYears);