Listar

Hvað er listi

Listi (e. array) er hlutur í javascrit sem geymir hóp af breytum/hlutum.

Hér er myndband þar sem Daniel Shiffman talar um hvað listar eru.

Við búum lista til með því að skrifa stöokin á milli [] tákna, með kommum á milli.

Við sækjum í listann með því að nota viðkomandi tilvísunarnúmer. Skipunin words[1] sækir stak númer 1 í listanum words

Hvaða gildi þarftu að setja í hornkloafan til þess að forritið prenti "grafa" á skjáinn?

Hvaða gildi þarftu að setja í hornkloafan til þess að forritið prenti "kleina" á skjáinn?

Prófaðu að bæta stökum í listann og að prenta þau á skjáinn með því að kalla á viðkomandi stað í listanum.

Það er algengt að við viljum fara í gegnum allan listann með einhverju móti og því nota hlaupabeytu til þess að vísa í sætin í listanum.

Hefurðu kannski ekki séð skipunina i++ áður? Hún geri nákvæmlega það sama og i = i+1.

Smelltu með músinni, þá ætti alltaf að koma næsta orð í listanum.

Þú ættir að taka eftir vandamáli. Þegar hlaupabreytan i fer út fyrir mörkin á listanum kemur upp ERROR.

Þegar við erum að fara í gegnum lista, verðum við að passa okkur sjálf á því að við séum ekki að reyna að spyrja um sæti í lista sem ekki er til.

Bættu inn í mousePressed() við kóðabrotinu if (i == 4){ i = 0; } Þetta ætti að laga villuna og láta listann aftur byrja upp á nýtt.

Bættu tveimur stökum í listann og gakktu þannig frá kóðanum að þau prentist líka á skjáinn þegar flett er í gegnum orðin.

.length

Hér er myndband þar sem Daniel Shiffman notar lista og lykkjur.

Athugið að hlutir hér eru aðeins öðruvísi (og asnalegri) en hlutirnir okkar.

Þegar við notum lista kemur fyrir að við bætum við hann eða tökum hluti úr því er heppilegra að geta vísað beint í lengd lisans sjálfs, frekar en nota ákveðna tölu.

Í dæminu að ofan er betra að nota words.length og þá fáum við alltaf viðeigandi lengd fyrir listann.

Prófaðu að bæta stökum í listann eða fjarlægja eins og þig listir. Sjáðu að núna fáum við alltaf allan listann og fáum ekki villu.

Listi af hlutum

Hér er myndband þar sem Daniel Shiffman notar lista af hluti.

Við þurfum ekki bara að hafa einfaldar breytur í listunum okkar, við getum sett hvers konar hluti sem við viljum.

Við megum ekki gleyma að nota lykilorðið new.

Búum til lista af sápukúlum og teiknum þær allar.

Það er kannski ekki mjög áhugavert að láta allar sápukúlurnar byrja á sama stað. Láttu sápukúlurnar hverja og eina byrja á slembnum stað á skjánum.

Prófaðu að breyta fjölda sápukúlnanna eins og þú vilt. Hvað þorirðu að hafa margar?

push()

Til þess að bæta hlutum við lista notum við push() aðferðina.

Listinn gæti byrjað tómur hjá okkur, og svo notum við bara push() til þess að bæta við listann.

Í næsta dæmi lék ég mér að því að búa til marga bolta þegar notandinn smellir á skjaínn.

Láttu fleiri bolta birtast þegar notandinn smellir.

Það kemur að því að boltarnir verða of margir og við erum að láta vafrann reikna fullmikið, þess vegna væri sniðugt að takmarka einhvernveginn fjölda hluta í listanum og fjarlægja t.d. þá elstu.

splice()

Við getum notað splice() til þess að fjarlægja hluti úr lista.

Hér er myndband þar sem Daniel Shiffman talar um hvernig má fjarlægja hluti úr listum.

Splice tekur inn tvær tölur, í fyrsta lagin í hvaða sæti á að taka gildi úr listanum (við notum hér 0 því við viljum taka út elsta gildið)

Hin talan segir til um hversu mörg gildi við ætlum að fjarlægja úr listanum (yfirleitt ætlum við bara að fjarlægja einn hlut, svo við setjum 1).

Hérna notum við slice til þess að taka alltaf út elsta hlutinn og takmmörkum þannig lengd listans.

Ef fjarlægja skal hlut úr lista þegar verið er að ýtra í gegnum listann þarf að passa sig.

Það sem gæti komið upp er að þú breytir listanum þannig að lykkjan geti ekki klárast eðlilega.

Þegar t.d. á að eyða hlutum úr lista eftir ákveðnu skilyrði er algeng lausn að ýtra í gegnum listann afturábak:

Hér er myndband þar sem Daniel Shiffman talar um gagnvirkni með listum og músinni.