Javascript-tietorakenteet

Javascriptin tietorakenteet ovat lähes sama asia kuin JSON-tiedostomuoto.

JSON on standardoitu tiedostomuoto tiedonvälitykseen. JSON on suoraan javascript-yhteensopiva mutta sitä käytetään usein monen muun kielen yhteydessä. WWW-sovelluksissa JSON on erittäin yleinen tiedonsiirtomuoto.

Voit käyttää JSONina suoraan javascriptin taulukoiden ja objektien esitysmuotoja eli [] ja {} sisältämät osat:

// javascriptia
var a = [1,2,3,4];
// JSONia
[1,2,3,4]

Kokeile tutkia ensimmäisen viikkotehtävän tietorakenteita JSON-editorilla: data ja tupa.

Samoja rakenteita voi tutkia myös suoraan selaimen konsolissa. Avaa pohja.html-tiedosto ja konsoli.

Javascript-tietorakenteita

Esimerkki

Katso tämän sivun konsolista ohjelman tulosteet

"use strict";

var opis = [
   "Testi",
  {
    "nimi": "Maija Meikäläinen",
    "Syntymäaika": 1999,
    "Pääaine": "TIE",
    "Kurssit": ["TIEA2120","ITKP101", "ITKP1011" ]
  },
  {
    "nimi": "Matti Meikäläinen",
    "Syntymäaika": 1999,
    "Pääaine": "TIE"
  },
  {
    "nimi": "Kalle Kehveli",
    "Syntymäaika": 1998,
    "Pääaine": "TIE"
  },
  {
    "nimi": "Kaija Kehveli",
    "Syntymäaika": 1998,
    "Pääaine": "TJT"
  },
  {
    "nimi": "Ville Virtanen",
    "Syntymäaika": 1995,
    "Pääaine": "MAT"
  }
]

console.log(" Opiskelija on objekti ");
for (let i in opis) {
  console.log(i + " : " + opis[i]);
}

console.log(" Opiskelijan nimi attribuuttina ");
for (let i in opis) {
  console.log(i + " : " + opis[i].nimi);
}

console.log(" Opiskelijan nimi []-operaattorilla ");
for (let i in opis) {
  console.log(i + " : " + opis[i]["nimi"]);
}

console.log(" Opiskelijan nimi []-operaattorilla ja käytetty avaimena muuttujaa ");
var kentta = "Pääaine";
for (let i in opis) {
  console.log(i + " : " + opis[i][kentta]);
}


console.log(" Kaikki tiedot");
for (let i in opis) {
  if ( typeof(opis[i]) === "object" ) {
      for(let key in opis[i]) {
        console.log(key + " : " + opis[i][key]);
      }
  }
  if ( typeof(opis[i]) === "string" ) {
        console.log("String : " + opis[i]);
  }
}


Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tiea2120/luennot/javascript_tietorakenteet/
© 2017-09-05 17:10:49
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta