Javascript Eğitim Dersleri #006

25 Mart 2008, Salı

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.

  1. var myShop = {
  2.  'Klasik' : {
  3.   '001' : {
  4.     'title' : "Mozart ve Sevgi"
  5.    ,'artist' : "Mozart"
  6.    ,'year' : 1911
  7.   }
  8.   ,'002' : {
  9.     'title' : "9.Senfoni"
  10.    ,'artist' : "Betofın"
  11.    ,'year' : 1913
  12.   }
  13.  }
  14.  ,'Hip Hop' : {
  15.   '006' : {
  16.     'title' : "Down with the King"
  17.    ,'artist' : "Run DMC"
  18.    ,'year' : 1993
  19.   }
  20.   ,'005' : {
  21.     'title' : "Touch This"
  22.    ,'artist' : "Mc Hammer"
  23.    ,'year' : 1992
  24.   }
  25.  }
  26.  ,'Rock' : {
  27.   '003' : {
  28.     'title' : "Justice for all"
  29.    ,'artist' : "Metallica"
  30.    ,'year' : 1991
  31.   }
  32.   ,'004' : {
  33.     'title' : "Loaded into it"
  34.    ,'artist' : "Rage Against the Machine"
  35.    ,'year' : 1998
  36.   }
  37.  }
  38. }

Kategorileri listeleyelim;

  1. for( var strCategoryTitle in myShop )
  2. {
  3.  window.alert( strCategoryTitle );
  4. }

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.

  1. var objSelectedCategory = myShop[ 'Klasik' ];
  2. for( var strItemID in objSelectedCategory )
  3. {
  4.  var strAlbumTitle = objSelectedCategory[ strItemID ][ 'title' ];
  5.  var strAlbumArtist = objSelectedCategory[ strItemID ][ 'artist' ];
  6.  var strAlbumYear = objSelectedCategory[ strItemID ][ 'year' ];
  7.  window.alert( strAlbumTitle );
  8. }

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.

  1. function getObjectLength( objObject )
  2. {
  3.  var i = 0;
  4.  for( var key in objObject )
  5.  {
  6.   i++;
  7.  }
  8.  return i;
  9. }

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!
  1. var strHtmlOut = '<p>Test<\/p>';

Final Source Download