Bir Nested Object’in değerlerine nasıl ulaşılır?

 

Merhaba dostlar, bugün JavaScript’te nested bir veri yapısının değerlerine ulaşma yollarına bakacağız.
Öncelikle JavaScript hakkında şunu bilmekte fayda var, JavaScript sadece bir veri tipine sahiptir; o da Object‘tir. Array’ler yani diziler ise Object’lerin farklı bir şeklidir. Örneğin:

Objectlerin formu şu şekilde iken;

 

1
{anahtar: değer, anahtar: değer, ...}

 

Arraylerin ise şu şekildedir;

 

1
[değer, değer, ...]

 

Arrayler de Objectler de anahtar->değer yapısındadır ama Arrayler anahtarlarını numerik ve sıralı alırken, Objectlerin keyleri yani anahtarları herhangi bir String olabilmektedir. Bu anahtar-değer ikililerine “properties” denmektedir.

Bu yazılarda amacım, ingilizce olan yazılım dilini türkçe kaynak arayanlar için anlaşılır halde anlatmak olmasına rağmen türkçe kullanmayacağım, çünkü “özellik” olarak çevirmek zorunda kalacağım için kafa karışıklığı yaratabileceğini düşünüyorum.

Konumuza dönersek; Object’lerin property’lerine ulaşmak için nokta notasyonu kullanırız.

Örneğin:

 

1
2
3
//object adında bir objectimiz olsun ve onun length keyinin değerine ulaşmak ve bir değişkene atayalım.
var value = object.length;
//key i length olan object property'sinin değerini value değişkenine atamış olduk.

 

Eğer ulaşmak istediğimiz property ismi, JavaScript için geçerli bir tanımlayıcı isim değil ise veya aradığımız property, bir değişkenin değeri ise o zaman köşeli parantez notasyonu kullanmak zorundayız. Evet karışık bir cümle oldu ama örnek ile anlaşılacağını düşünüyorum;

 

1
2
3
4
5
6
7
//aşağıdaki örnekte object'in propertysi olarak yazdığımız ifadede boşluk olduğu için JavaScript property ismi olarak kabul etmez
//o yüzden köşeli parantez ile ulaşmak zorundayız.
var value = object["bir property"];

//bir değişkeni property ismi olarak ulaşmak ise şu şekilde olmaktadır.

var name = "bir Property"; var value = object[name];

 

Array’leri ayrı şekilde anlatmamızın sebebi ise Arraylerin elementleri her zaman köşeli parantez notasyonu ile ulaşılmasıdır.

 

1
2
3
4
5
6
//Array.5 yazarak ulaşmak istersek eğer 5. değerine Array adlı dizimizin, program syntax error verecektir.
var value = Array[5];

//farklı bir kullanım ise şu şekilde olacaktır;
var a = 5;
var value = Array[a];

 

Bunları aştıktan sonra sırada Nested bir Veri Yapısının property’lerine ulaşmak var.
Nested Veri Yapısı; başka object veya arrayleri refer eden object veya arraylere denir. Yani value’ları (değerleri) başka objectler veya arrayler olan objectlere veya arraylere nested object/nested veri yapısı diyoruz. Umarım anlatabilmişimdir, anlatamadıysam da örnek ile daha manalı geleceğine eminim.

Bir örnek verelim:

 

1
2
3
4
5
6
7
8
9
10
var Veri= {
numara: 42,
items: [{
id: 1,
name: 'hop'
}, {
id: 2,
name: 'şşt'
}]
};

 

Şimdi bu nested yapıdan, id’si 2 olan item’ın “name” property’sine ulaşmaya çalışalım. yani “şşt” değerine ulaşmak istiyoruz.

adım adım gidersek eğer öncelikle Veri adındaki yapımızın items property’sine ulaşalım;

 

1
Veri.items

 

value’su bir array, ikinci element’ine ulaşmak için köşeli parantez notasyonu kullanmalıyız;

 

1
Veri.items[1]

 

Son olarak ise name property’sine ulaşmak için nokta notasyonu kullanıyoruz.

 

1
var item_name = Veri.items[1].name;

 

Umarım bugünkü yazım açık ve faydalı olabilmiştir dostlar, sorularınız olursa buradan veya facebook hesabıma mesaj atarak ulaşabilirsiniz. kendinize dikkat edin.

ahmet

Ahmet Kılınç - Software Developer

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.