Aktywne Wpisy

Caracas +13
Latam około 60-65 razy w ciągu roku. Trochę prywatne (5 razy) reszta służbowo teraz głównie Europa wcześniej dosłownie cały świat.
Zawsze na każdym lotnisku na świecie rozwalały mnie te komunikaty "Pasażerowie lecący do Izraela przypominamy o przejściu dodatkowej obowiązkowej kontroli bezpieczeństwa. Przypominamy, że kontrola jest obowiązkowa a jej czas może wynosić nawet 30 minut."
I zawsze ten widok totalnego upadku społeczeństwa co oni tam z ludźmi robili.
To też nie jest normalny
Zawsze na każdym lotnisku na świecie rozwalały mnie te komunikaty "Pasażerowie lecący do Izraela przypominamy o przejściu dodatkowej obowiązkowej kontroli bezpieczeństwa. Przypominamy, że kontrola jest obowiązkowa a jej czas może wynosić nawet 30 minut."
I zawsze ten widok totalnego upadku społeczeństwa co oni tam z ludźmi robili.
To też nie jest normalny
Takijakja +6
Potrzebuje porady... Od kilku miesiecy mam dziwne poczucie lęku, prześladuje mnie. Dla przykładu jak wychodzę z pracy zawsze mam lęk, że zrobiłem coś źle mimo, że wiem iż tak nie było lęk prześladuje. Cały wolny czas spędzam w łóżku, siedzę do późnych godzin bo niechce spać by następny dzień się nie skończył bo następny może być gorszy i pytanie... Czy jak umówię się na wizytę to potraktuje mnie poważnie, bo ostatnio czytam,





Mam dwie funkcje bardzo do siebie podobne: nest i append.
nest ma za zadanie zagnieżdżać obiekty jeden wewnątrz kolejnego według podanej tablicy.
append ma za zadanie dołączać kolejne wartości z tablicy do tekstu.
Obie funkcje są rekurencyjne.
Obie funkcje zmieniają zmienną na której pracują.
Pytanie:
Dlaczego na koniec obie funkcje zwracają inną wartość z funkcji niż jest w zmiennej? - Patrz logi.
Dlaczego w funkcji nest to obiekt "a" na koniec zwraca prawidłową wartość,
natomiast zupełnie odwrotnie funkcja append - to funkcja zwraca prawidłową wartość a nie zmienna "text"?
#javascript
obj[props[0]] = {};
return nest(obj[props[0]], props.slice(1));
wywołujesz funkcję nest z {} jako pierwszy parametr
if (props.length === 0) {
return obj;
}
tutaj zwracasz ten parametr (czyli {}) dlatego finalnie funkcja zwraca {}
Bo na sam koniec robisz return
obj, który jest ostatnim (pustym) kluczem z tablicy (czyliz). Czyli pierwszy log pokazuje tylko kluczz, a w drugim wołasz już o cały obiekt.Bo w stringach nie działa referencja. W żadnym miejscu
nestbędzie dodanie trzeciego parametru (który będzie przekazywał referencję do oryginalnej zmiennej).function nest(obj, props, orgObj) {if (props.length === 0) return orgObj;
else return nest(obj[props[0]] = {}, props.slice(1), orgObj || obj);
}
Dzięki zastosowaniu
orgObj || objnie musisz podawać tego argumentu przy wywołaniu funkcji (referencja będzie przechodzić automatycznie).Rozwiązaniem dla
appendbędzie przypisywanie wartości przy wywołaniu funkcji.console.log(text = append(text, ['b', 'c', 'x', 'y', 'z']));