Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem HTML úloha

cyklus s pevným počtom iterácií:

{% for i in 0..5 %}

namiesto 0 a 5 môžu byť hocijaké čísla, akurát prvé číslo musí byť menšie alebo rovné než druhé.

v prípade cyklusu riadeného podľa veľkosti poľa:

{% for i in myarray %}

pričom myarray je názov poľa v JSONe, podobne jak cisla v mojom priklade. v prípade že sa poľe nachádza v nejakom objekte. Použiteje v cykle myobj.myarray pričom myobj je názov objektu.
cykli môžene zanorovať v prípade ak by ste prechádzali poľom vo vnútri iného poľa. Díky pričom v zanorenom cykli môžete použiť index nadriadeného cyklu ako podmienku, díky tomu jde vytvoriť prkotniky ako: https://www.youtube.com/watch?v=q-D8BKfYKn4
v prípade podmienok môžete použiť rôzne porovnania "==, "<" ">" "<=" ">=" atd... spájať podmienky môžete skrz OR a AND. Pričom pri or stačí aby platila jedna podmienka a bude vykonaná if vetva, v prípade and musia byť všetky platné, ak neni platná vykonáva sa else vetva (ak existuje).
v prípade samotnej interpolácia, tá vkladá do výstupu hodnoty z JSONu. Tam sa odkazuje buď priamo hodnota: napríklad pozdrav v mojom prípade. Alebo objekt v ktorej je hodnota, to je ta bodka medzi názvami, tie objekty môžu byť rôznak vnorené takže existuje i pojistka.rizika.doplnkova.nazev (trocha som to skrátil) když použijete toto, to načitáva hodnotu "mojahodnota" z takéhoto JSONu:


{
    "pojista" : {
        "rizika" {
            "doplnkova": {
                "nazev": "mojahodnota"
            }
        }
    }
}

V prípade poľa používať hranaté zátvorky v interpolácii. Napríklad obj.array[i].premenna to je v JSONe:


{
    "obj" : {
        "arrray": [
           {
                "premenna": "mojahodnota",
                "dalsiapremenna" :"hodnota2"
            },
          {
                "premenna": "ahoj",
               "dalsipremenna": "cukor"
         }
        ]
    }
}

toto vypíše:

mojahodnota
ahoj

môžete polia a objekty rôzne zanorovať, takže môže vzniknúť kludne aj niečo takéto:

obj.pole[2][i].objektdva.pole[j][2][k].cukor.muka.muka[6]

toto když dáte vo vnútri cyklu s premennými i, j a k až po veľkosť celých arrayov tak to vypíše všetky hodnoty z pole[2] (druhý riadok poľa obsahuje ďalšie poľe z ktorého vypíše všetky hodnoty splnajuce všetko v interpolácii zapísané za týmto výrazom, teda z toho poľa načíta objektdva v ktorom je pole, u toho poľa rovnako ako v prípade všetky prvky s druhým indexom 2, z neho vyjme cukor, z toho muku, a z toho hodnotu z pola muka na indexe 6.

Teraz asi máte v tom chaos. Ale v prípade objektov zanorenie je jasné, v prípade poľa je možné v prípade pole[i] si predstaviť ako očíslovaný zoznam... v prípade pole[i][j] ako tabuľku, kde prvá hodnota je riadok a druhá stĺpec... potom pole[i][j][k] je už vhodnejšie si predstaviť spôsobom čo na čo ukazuje.

Vysvetlí to tento obrázok:

[ij8bS.jpg]

kde i je vlastne index políčka, z ktorého šipka smeruje do druhého zoznamu, j je index z ktorého políčka smeruje šipka do tretieho zoznamu a zároveň do ktorého smerovala z prvého zoznamu, a k je políčko už v tom tretom zozname.

Takže z obrázku by vybralo číslo 0 z toho zoznamu úplne hore na pravo kdyby si napísal pole[0][0][5]

a nakoniec môžeš urobiť i to že v indexu urobíš niečo ako pole[ (i+j-2) ] čož najskôr spočíta výraz i+j-2 a následne hodnotu použije pre získanie položky. V indexy môžeme odkázať aj na premennú z JSONu. to Znamená že ak máme:

{
    "pole": ["nulty", "prvy", "druhy", "treti"],
    "cislo": 2
}

a použijeme interpoláciu: {{ pole[cislo] }} tak to vypíše slovo druhy. Treba si zapamätať že počítač počíta od nuly. Tzv, prvé slovo v zozname má index 0, druhé slovo index 1 atd...

Možno to znie komplikovane, ale je to v podstate strašne jednoduché... když si to nakreslíte na papier tak to hneď pochopíte. Ono najlepšie by to bolo vysvetliť na reálnych príkladoch a kreslením. Myslím že až pozriete toto video tak pochopíte:

https://www.youtube.com/watch?v=C30NQ1vHdnY (prvé 2 minuty môžete preskočiť, môžete preskočiť aj 13 až 16 minutu)). Tam len vysvetluje špecifickú retardaci pri deklarácií polí v Jave... Java je celkom blbý jazyk čo sa takýchto vecí týka, ale samotný princíp pola je v tom videu dobre vysvetlené... Nezamerujte sa na kód, len na princíp, ktorý okecáva.

Arraye / polia ; a objekty sú vo všetkých bežných progr. jazykoch zhodné (a aj v JSONe), a rovnako je to i v tom TWIGFiddle, akurát rozdiel je že když zistujete dĺžku poľa pre cyklus, tak stačí tam dať "i in array" a nemusíte písať "i in array.lenght" to jak robí nákres pre array vo videu, tie štvorčeky na tabule, tak to je podobné aj pre objekty, len s rozdielom, že tie nie sú indexované číselne automaticky od nuly, ale je každému políčku priradený názov, cez ktorý sa odkazuješ. Jak vidíš v mojom prvom príklade "pojistka.rizika.doplnkova.nazev"

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny