Kromotoryum
Hocam bu kadar uzun kod yazmanız manasız.
filter ile map methodunu zincirleme kullanın aynı sonucu 3 satırda alırsınız.
Şöyle ki VSC’ da düzenleyip geliyorum hemen birazdan mesajı editleyeceğim.
Edit : Kestirme yolu aşağıda belirtilmiştir. Sizin göndermiş olduğunuz satırlarca kodu 2 satırda çalıştırabiliyoruz methodları zincirleme kullanarak.
Not 3 satır demişim fakat 2 satırda çözdüm işi 🙂
Kısayol
const ogrencilerDizisi = [
{id:1,ad:'Hasan',soyad:'Özbek'},
{id:2,ad:'Kamil',soyad:'Aydın'},
{id:3,ad:'Kazım',soyad:'Esen'},
{id:4,ad:'Gizem',soyad:'Yazar'},
{id:5,ad:'Rabia',soyad:'Özer'},
{id:6,ad:'Emre',soyad:'Koç'}
];
const yeniBirListe = ogrencilerDizisi.filter(ogrenci => ogrenci.id%2===0)
.map(ogrenci => `${ogrenci.ad} ${ogrenci.soyad}`).sort()
Sizin göndermiş olduğunuz kodun çalışma mantığı
// Bir object array oluşturulmuş. Yani referans bir dizi var burada.
const ogrencilerDizisi = [
{id:1,ad:'Hasan',soyad:'Özbek'},
{id:2,ad:'Kamil',soyad:'Aydın'},
{id:3,ad:'Kazım',soyad:'Esen'},
{id:4,ad:'Gizem',soyad:'Yazar'},
{id:5,ad:'Rabia',soyad:'Özer'},
{id:6,ad:'Emre',soyad:'Koç'}
];
// Burada ise boş bir liste oluşturulup id'nin 2 ile bölümünden kalanı 0 olan yani idleri 2 ve 2'nin katları olan objeler yeniListenin içine atılmış.
const yeniListe = [];
const ciftId = ogrencilerDizisi.filter((deger) => {
if (deger.id%2===0){
return yeniListe.push(deger.ad+ " " + deger.soyad)
}
} );
// Burada ise id'si 2 ve ikinin katlarının aktarıldığı listenin Ad değerine göre A'dan Z'ye sıralaması if blokları kullanılarak yapılmış
yeniListe.sort((a,b) => {
if (a.ad>b.ad) {
return 1;
}else if (a.ad<b.ad) {
return -1
}else return -1;
// Son olarak burada sıralama yapıldıktan sonra fonksiyonun dışına çıkılmış ve ekrana sıralaması yapılmış halde bastırılmış.. (Not fonksiyondan çıkması önemli bir husus. Yoksa fonksiyon return edildiği için alttaki hiç bir kod bloğunu çalıştırmayacaktır.
});console.log(yeniListe);