Można już czytać wersje roboczą mocno uaktualnionej trzeciej edycji Eloquent Javascript. Jeśli ktoś chce się nauczyć JS'a to ta książka wraz z zadaniami po każdym rozdziale jest znakomitym wstępem. http://eloquentjavascript.net/3rd_edition/ #eloquentjavascript #javascript #js trochę też #naukaprogramowania
Wszystko
Najnowsze
Archiwum

Pesio
- 9
konto usunięte via Android
- 0
@Pesio:

Pesio
- 0
@xMAT: też tak uważam xd
- 7
Pisze się 3 edycja #eloquentjavascript : https://www.indiegogo.com/projects/eloquent-javascript-third-edition-book-education#/
W końcu nie trzeba będzie polecać tej świetnej książki z dopiskiem "plus poczytaj sobie jak się dzisiaj używa JS". #js #javascript
W końcu nie trzeba będzie polecać tej świetnej książki z dopiskiem "plus poczytaj sobie jak się dzisiaj używa JS". #js #javascript
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")
I nie za bardzo ogarniam co jest zwracane tutaj
function sharedDNA(person, fromMother, fromFather) {
if (person.name == "Pauwels van Haverbeke")
- 1
@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ń.
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ń.
- 1
@PolaroidalnY: Przede wszystkim byName[person.mother] zwraca obiekt, nie string.
Po drugie najpierw tworzysz drzewo wywołań od góry w dół, następnie "zwijasz" je wywołując te funkcje. sharedDNA w parametrach fromMother i fromFather będzie miało wynik "niższych" wywołań sharedDNA itd. Spróbuj to sobie rozrysować.
https://blog.jayway.com/2011/03/20/the-substitution-model-a-tool-for-understanding-recursion/
Po drugie najpierw tworzysz drzewo wywołań od góry w dół, następnie "zwijasz" je wywołując te funkcje. sharedDNA w parametrach fromMother i fromFather będzie miało wynik "niższych" wywołań sharedDNA itd. Spróbuj to sobie rozrysować.
https://blog.jayway.com/2011/03/20/the-substitution-model-a-tool-for-understanding-recursion/
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ść:
Oryginalna treść:
Komentarz usunięty przez moderatora
- 5
@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ą.
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:
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
@PolaroidalnY: for(var count=0; count <= arrayOfNumbers.length; count++){
zmień na count < arrayOfNumbers.length, bo wychodzisz za array.
zmień na count < arrayOfNumbers.length, bo wychodzisz za array.
@PolaroidalnY: Btw zapoznaj się z metodami
Array.prototype bo sumę można zrobić dużo czytelniej: return arrayOfNumbers.reduce((result, item) => result + item)


