Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki. Tęsiu savo mokslus JavaScript'e. Gal kas galite paaiškinti, kodėl šis kodas grąžina trūkstamą raidę, o ne tiesiog antrą nuo galo raidę (kaip kad aš įsivaizduoju jis turėtų grąžinti (dėl code-1))?

 

function fearNotLetter(str) {

 

for(var i = 0; i < str.length; i++) {

/* code of current character */

var code = str.charCodeAt(i);

 

/* if code of current character is not equal to first character + no of iteration

hence character has been escaped */

if (code !== str.charCodeAt(0) + i) {

 

/* if current character has escaped one character find previous char and return */

return String.fromCharCode(code-1);

}

}

return undefined;

}

 

// test here

fearNotLetter("abcdefghijkmno");

Nuoroda į pranešimą
Dalintis kituose puslapiuose

var code = str.charCodeAt(i); - ši vieta gauna raidės kodą pagal ASCII lentelę (http://www.ascii-code.com/), pvz a - 97.

Pagal ascii, visos raidės eina iš eilės, todėl a-z yra 97-122.

if (code !== str.charCodeAt(0) + i) - ši vieta palygina ar dabartinė raidė yra einanti iš eilės. T.y. jeigu tikrinam b raidę (imant tavo pateiktą tekstą), gaunasi tokios reikšmės: 98 lygina su 97 + 1.

Jeigu nesutampa - atiduoda raidę, kurios nėra prieš dabartinę. Šiuo atveju - l raidė (108).

T.y. skaitant m raidę visas procesas atrodo taip:

 

for(var i = 0; i < str.length; i++) { // i reikšmė yra 11

var code = str.charCodeAt(i); //109 (nes m pagal ascii yra tiek)

if (code !== str.charCodeAt(0) + i) { // if (109 !== 97 + 11) { , arba kitaip: if (109 !== 108) {, kas reiškia tiesa - einam į if'o vidų

return String.fromCharCode(code-1); // String.fromCharCode(109-1) yra 108, kas yra l raidė. T.y. fromCharCode supranta, kad tu pateiki ascii reikšmę ir ją atvaizduoja į atitinkamą simbolį, šiuo atveju - l raidę.

 

Jeigu norėtum priešpaskutinės raidės, tai tiesiog

function secondToLastLetter(str) {

if(str.length > 1)

{

return str[str.length-2];

}

return undefined;

}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...