Mini-Ödev
Amacımız, hayali bir müzik dükkanının veritabanını javascript ile listelemek. Dükkandaki cd’ler türlerine göre
kategorize edilmiş. Üç tür kategori bulunmakta; Klasik, Hip Hop ve Rock.
Önce ürünlerimizi bir obje üzerine yerleştirelim.
- var myShop = {
- 'Klasik' : {
- '001' : {
- 'title' : "Mozart ve Sevgi"
- ,'artist' : "Mozart"
- ,'year' : 1911
- }
- ,'002' : {
- 'title' : "9.Senfoni"
- ,'artist' : "Betofın"
- ,'year' : 1913
- }
- }
- ,'Hip Hop' : {
- '006' : {
- 'title' : "Down with the King"
- ,'artist' : "Run DMC"
- ,'year' : 1993
- }
- ,'005' : {
- 'title' : "Touch This"
- ,'artist' : "Mc Hammer"
- ,'year' : 1992
- }
- }
- ,'Rock' : {
- '003' : {
- 'title' : "Justice for all"
- ,'artist' : "Metallica"
- ,'year' : 1991
- }
- ,'004' : {
- 'title' : "Loaded into it"
- ,'artist' : "Rage Against the Machine"
- ,'year' : 1998
- }
- }
- }
Kategorileri listeleyelim;
- for( var strCategoryTitle in myShop )
- {
- window.alert( strCategoryTitle );
- }
Source Download
İlk satırda; myShop adlı nesnenin içindeki key, benim için strCategoryTitle olsun!
3 adet alert olacak, Klasik, Hip Hop ve Rock. Şimdi, denemek için, Klasik kategorisine ait
kayıtlara bakalım.
- var objSelectedCategory = myShop[ 'Klasik' ];
- for( var strItemID in objSelectedCategory )
- {
- var strAlbumTitle = objSelectedCategory[ strItemID ][ 'title' ];
- var strAlbumArtist = objSelectedCategory[ strItemID ][ 'artist' ];
- var strAlbumYear = objSelectedCategory[ strItemID ][ 'year' ];
- window.alert( strAlbumTitle );
- }
Source Download
Görüldüğü gibi, Klasik kategorisinin altında 2 adet ürün olduğu için , sadece 2 kez alert çıktı ve sadece strAlbumTitle yani albüm adı’nı alert ettirdik.
Object.length ?
Obje’lerin length’i yoktur! Bunun için length’i hesaplayan bir fonksiyon yazmamız gerekiyor.
- function getObjectLength( objObject )
- {
- var i = 0;
- for( var key in objObject )
- {
- i++;
- }
- return i;
- }
Aslında yaptığımız, ilk derinlikte varolan key’leri saymak. Bu uygulama için ihtiyacımız olan bir durum.
IN-LINE Javascript yazarken, / leri escape etmemiz gerekir! \/ şeklinde yazmalıyız!
- var strHtmlOut = '<p>Test<\/p>';
Final Source Download