Jest sobie taki kod https://pastebin.com/yRMr6fBU (z 5 rozdziału Eloquent JavaScript), a tutaj array (w przykładzie jest przekonwertowany z JSONa pod zmienną ancestry)

I nie za bardzo ogarniam co jest zwracane tutaj

function sharedDNA(person, fromMother, fromFather) {
if (person.name == "Pauwels van Haverbeke")
return 1;
else
return (fromMother + fromFather) / 2;
}

To dalej leci do valueFor, i tam jest pobierana matka i ojciec. Tylko, że matka i ojciec to imię i
@PolaroidalnY: Ten return zwraca 1 lub średnią jaką matka i ojciec obiektu person dzielą z panem Puawelsem ;)

reduceAncestors przy pomocy valueFor, dzięki rekurencji tworzy drzewo wywołań funkcji sharedDNA (dla każdej osoby spokrewnionej z osobą z wywołania valueFor(person) w reduceAncestors. Czyli:

sharedDNA(byName["Philibert Haverbeke"], sharedDNA(byName["Emma de Milliano"]....

Przy wykonywaniu ("zwijaniu drzewa") tych wywołań sharedDNA przekazuje "sam sobie" albo 1 albo tę średnią z poprzednich wywołań.
Eh, Mireczki. Zrobiłem 3 zadanie, z 5 rozdziału Eloquent Javascript, w którym należało obliczyć średnią wieku w poszczególnych stuleciach.

Oryginalna treść:


Tu jest mój frankenstein(działa): https://pastebin.com/EhTmXzVs
A tu autora: https://pastebin.com/KhzSH0pi

Jest ktoś w stanie ocenić jak bardzo spartoliłem, i powiedzieć czy będą ze mnie ludzie, czy nie ma szans?

#naukaprogramowania #webdev #javascript #eloquentjavascript
@PolaroidalnY: Działać działa, ale z każdym dodatkowym wiekiem będziesz musiał dopisywać ifa i dodawać element do tablicy.
Ten rozdział z tego co widzę uczy HOF i na wykorzystaniu tego powinieneś się skupić.
Przeczytaj rozdział jeszcze raz, przepisz kod.

btw. Gdzieś widziałem Eloquent JavaScript z adnotacjami. Poszukaj, może Ci coś rozjaśnią.
Robię pierwsze ćwiczenie z Eloquent JavaScript, z 4 rozdziału "The sum of a range"
Jego piersza część to:

Write a range function that takes two arguments, start and end, and returns an array containing all the numbers from start up to (and including) end.

Next, write a sum function that takes an array of numbers and returns the sum of these numbers. Run the previous program and see whether it does indeed