Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@Deykun: Coś takiego działa:

function padIt(str, n) {
    str = str.padStart(str.length + Math.ceil(n / 2), "*");
    str = str.padEnd(str.length + Math.floor(n / 2), "*");
    return str;
}

console.log(padIt("a", 9));

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@spam_only: Dopiero co to odkryłem, ale i tak wolę for loop.

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@sens: Wtedy tak, ale chodziło mi o to, że n osiąga -1.
@spam_only: Spoko, wiem jak działa pętla, ale musiałem sobie uświadomić, że tam osiągane jest while(0), czyli false.

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

we fajerfoksie

@sens: Hmm. https://i.imgur.com/1nc83OJ.png

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@ajdajzler: Jak działają, to wiem, ale wyjaśnienie jest takie, że gdy osiągnie 0, wtedy while(0) będzie false i zakończy pętlę. Sprawdziłem i w C działa to tak samo.

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@ajdajzler: Czyli w takiej składni pętla zatrzyma się na 0. Dobry patent, chociaż nadal nie wiem dlaczego tak jest.

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

@Deykun: Tu nie chodzi o operacje na bitach.

function padIt(str, n) {
while (n--) {
    str = (n % 2 === 0) ? ("*" + str) : (str + "*");
}
return str;
}

console.log(padIt("a", 5));

Jeśli reszta z dzielenia n przez 2 jest równa 0, dodaj gwiazdkę po lewej stronie od str, inaczej po prawej. n jest równe 5, a potem kolejno schodzi do -1.

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

no nie wiem, mi wywala out of memory

@sens: W czym to uruchamiasz?

https://edube.org/sandbox/157592ee-3580-11ec-90e0-0242157e55ca

Also, przejedz ten kod w JS Tutor:
https://pythontutor.com/javascript.html#mode=edit

Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

Zian

Tak średnio pełna.

Zian

@Aleks: Skaczę i klaskam.

Zian

Tak średnio pełna.

Stary telewizor zakł...

Stary telewizor zakłócał łącze DSL codziennie przez 18 miesięcy [ENG]

Zakłócenie wykryto analizatorem widma.

0 comments Internet Zian arstechnica.com 0

Orbity wszystkich satelitów Starlink [ENG]

🛰 🛰 🛰

0 comments starlink Zian moesalih.com 0

Zwiastun "Jak Bóg sz...

Zwiastun "Jak Bóg szukał Karela"

Zwiastun filmu prezentowanego w ramach 17. Festiwalu Millennium Docs Against Gravity.

0 comments ateizm Zian youtube.com 0

spam_only
g/strimoidproblems

strm is ded

Zian

@spam_only: Ded en forgoten.