There is an JSON object.
http://eloquentjavascript.net/code/ancestry.js
Please explain how this function work.I don’t understand what is cur and min. Thank u.
let x = JSON.parse(ANCESTRY_FILE);
x.reduce(function(min, cur) {
if (cur.born < min.born) return cur;
else return min;
});
// → {name: “Pauwels van Haverbeke”, born: 1535, …}
I suggest a Google search. MDN is a good resource.
Here, min
represents a value that is being accumulated throughout the reduce
operation and min
represents the current value in the original array. You can name these arguments anything, but for reduce
the first argument in the callback represents the accumulator and the second represents the current value. So you could equivalently write:
x.reduce(function(minimumBirthday, currentPerson) {
if (currentPerson.born < minimumBirthday.born) return currentPerson;
return minimumBirthday;
});
This reduce
operation will process the entire array x
and for each item in x
it will return the minimum between that item and the current minimum. Eventually it will return the person in x
has the earliest birthyear.
reduce
is a very powerful method. You can pass in []
or {}
as well so you accumulate an array or object as a result, so it is very versatile in the types of operations it allows you to create.
1 Like