for .. in ile Nesnenin Özellikleri
Bir özelliğin bir nesne içindeki varlığını in
deyimi ile sorgulayabiliriz. Örnek.
let ogrenci = {
no:2301,
isim:'Asya',
sinif:7,
};
delete ogrenci.sinif;
alert( 'isim' in ogrenci ); //true
alert( 'notlar' in ogrenci ); //false
alert( 'sinif' in ogrenci ); // 6.satırda sildiğimiz için: false
Bu sorgulama .hasOwnProperty()
veya Object.hasOwn()
ile de yapılabilir. Örnek.
alert( ogrenci.hasOwnProperty('no') ); //true
alert( Object.hasOwn(ogrenci,'isim') ); //true
alert( Object.hasOwn(ogrenci,'okul') ); //false
Nesnelerin anahtarları döngülenebilirler. Döngülenebilir yapılar for
'un farklı kullanımlarıyla döngülenebilirler. Nesneler for ... in
kullanımıyla döngülenebilirler. Örnek.
let user = {
takmaAd:'user',
sifre:'1234',
dil:'TR',
};
for (let ozellik in user) {
alert(ozellik);
}
Eğer size değerler lazımsa şu şekilde kombinleyebilirsiniz.
let user = {
takmaAd:'user',
sifre:'1234',
dil:'TR',
};
for (let ozellik in user) {
alert( user[ozellik] );
}
for ... in
kullanımı özelliklerin eklenme sırasına göre çalıştırır fakat anahtarlar string
tipinde nümerik değerlerle belirtilmişse işler değişir.
let numerics = {
'44':'kırkdört',
'1':'bir',
'34':'otuzdört',
};
for (let anahtar in numerics) {
alert(anahtar);
}
Anahtarlar eklenme sırasına göre değil de sayısal olarak artan sırada gelir. Bu durum anahtarların for ... in
kullanımında bellekte nümerik olarak çevriminden kaynaklanır. Önüne geçmek için string'
in önüne '+' vb. semboller konularak tip saflaştırılır.
let numerics = {
'+44':'kırkdört',
'+1':'bir',
'+34':'otuzdört',
};
for (let anahtar in numerics) {
alert(anahtar);
}
Metotlar da yine for ... in
döngüsü anahtar olarak gösterilir. Örnek.
let user = {
takmaAd:'user',
sifre:'1234',
dil:'TR',
ozellikGoster() {
for (let ozellik in this) {
alert(ozellik);
}
}
};
user.ozellikGoster(); // en sonda ozellikGoster anahtarı görünecektir.
Last updated