Obrtanje redosleda broja

Obrtanje redosleda broja

offline
  • Pridružio: 09 Sep 2021
  • Poruke: 22

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.
offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14693
  • 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?



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3700
  • 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.

offline
  • Pridružio: 09 Sep 2021
  • Poruke: 22

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.

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14693
  • Gde živiš: Niš

Pa jel jeste ili nije? Odakle ti to da broj ima takvu funkciju?

offline
  • Pridružio: 02 Sep 2003
  • Poruke: 4934

Radi ova funkcija koju si napisao, proveri da nisi pogresio nesto u kucanju

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14693
  • 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.

Ko je trenutno na forumu
 

Ukupno su 531 korisnika na forumu :: 8 registrovanih, 0 sakrivenih i 523 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: havoc995, hyla, M1los, Mixelotti, nenooo, pericanet, purke62, Shilok