Poslao: 16 Dec 2021 22:17
|
offline
- _Pegaz_
- Novi MyCity građanin
- Pridružio: 09 Sep 2021
- Poruke: 25
|
Zdravo,
Zadatak je krajnje jednostavan, ali mi nije najjasniji: Napraviti java script f-ju koja obrće broj.
Neka nam je prosleđeni broj npr 123456 . Zbog čega u funkciji u okviru koje obrćemo mesta moramo taj broj da pretvaramo u string, pa onda da vršimo funkciju split, pa tek onda reverse?
Što nije moglo samo npr console.log(n.reverse());? Kontam da se reverse koristi samo kod nizova, ali i brojevi valjda spadaju u nizove, ne samo stringovi?
Evo ga ceo kod:
function obrniBroj(n)
{
n = n + "";
return n.split("").reverse().join("");
}
console.log(obrniBroj(123456));
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 16 Dec 2021 22:35
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
_Pegaz_ ::Kontam da se reverse koristi samo kod nizova, ali i brojevi valjda spadaju u nizove, ne samo stringovi?Kako to misliš? Broj je jedno, string je drugo, a niz je nešto sasvim treće. Niz je skup nekih podataka, dakle skup stringova, skup brojeva ili mešano. Pošto je to skup nekih elrmenata, promena redosleda elemenata ima smisla.
Broj je jedan podatak, jedan jedini element, i tu nema šta da menja redosled. E sad, taj broj možeš pretvoriti u niz cifara kojima menjaš redosled, što ti upravo i radiš. Međutim, ti svoj funkciji prosleđuješ broj, ali vraćaš string, što ne deluje baš logično. Iako prilikom štampanja isto izgleda, to nije isto.
_Pegaz_ ::Što nije moglo samo npr console.log(n.reverse());?Jesi li probao, šta je problem? Zašto?
|
|
|
|
Poslao: 16 Dec 2021 22:43
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Ne. Jednostavno ne. String i niz nisu isto. Mozes da pristupis odredjenom karakteru stringa koristeci slicnu sintaksu kao elementu niza, ali to ne znaci da su istog tipa. Za brojeve ne mozes ni to.
String i broj su primitivni tipovi u JS, i gomili drugih jezika. Niz nije.
Da se vratimo na problem - prva linija funkcije radi konkatenaciju (praznog) stringa na sta god da mu prosledis kao parametar. Rezultat konkatenacije bilo cega i stringa je string - ovo je najlaksi i najbrzi nacin da budes siguran da je promenljiva tipa string. Druga linija deli taj string na delove koji su odvojeni nicim (parametar funkcije split je delimiter - npr "nesto/tamo".split("/") vraca niz sa 2 elemena - "nesto" i "tamo"), sto rezultira nizom karaktera od kojih je string sacinjen. F-ja join je reverzna f-ja od split, sto znaci da spaja niz u string koristeci parametar kao delimiter. Posto je ovde delimiter prazan string, njega u konacnom rezultatu nema.
|
|
|
|
Poslao: 17 Dec 2021 05:18
|
offline
- _Pegaz_
- Novi MyCity građanin
- Pridružio: 09 Sep 2021
- Poruke: 25
|
Citat:Jesi li probao, šta je problem? Zašto?
U tom slučaju mi ispisuje da to n koje sam prosledio nije funkcija, tj. n.reverse() nije f-ja.
|
|
|
|
Poslao: 17 Dec 2021 07:33
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Pa jel jeste ili nije? Odakle ti to da broj ima takvu funkciju?
|
|
|
|
Poslao: 17 Dec 2021 07:41
|
offline
- Djole
- Mod u pemziji
- Pridružio: 02 Sep 2003
- Poruke: 4956
|
Radi ova funkcija koju si napisao, proveri da nisi pogresio nesto u kucanju
|
|
|
|
Poslao: 17 Dec 2021 07:50
|
offline
- vasa.93
- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14824
- Gde živiš: Niš
|
Djole ::Radi ova funkcija koju si napisao, proveri da nisi pogresio nesto u kucanjuNad brojem? Nije definisana, zato se i prikazuje greška koja se prikazuje.
|
|
|
|