Menu
Coddy logo textTech

Veri Dönüştürücü

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 56 / 56.

Bitirme projesi mücadelesi: bir veri kümesini özet rapora yeniden şekillendirin. Filtreleme, eşleme, gruplama, hata işleme ve yöntem tanımını tek bir programda birleştirin.

challenge icon

Görev

Orta

students dizisi verilmiştir. Her girişte :id, :grades (muhtemelen boş olabilen bir tamsayı dizisi) ve :subjects (bir string dizisi) bulunur.

İki anahtara sahip bir hash döndüren transform_dataset(students) metodunu tanımlayın:

  • :qualified_ids: en az bir notu olan ve all notları kesinlikle 70 değerinden büyük olan öğrencilerin :id değerlerinin sıralanmış dizisi (all? kullanın).
  • :subject_counts: nitelikli öğrencilerin aldığı her dersi, o dersi alan nitelikli öğrenci sayısına eşleyen bir hash.

Bir öğrencinin :grades dizisi boşsa öğrenci nitelikli değildir; onu sessizce atlayın.

Ardından metodu çağırın ve şunları yazdırın:

  1. , ile birleştirilmiş ve başına Qualified: eklenmiş nitelikli kimlikler. Hiçbiri yoksa Qualified: (none) yazdırın.
  2. Her ders için alfabetik olarak sıralanmış biçimde <subject>: <count> formatında bir satır.

Varsayılan students için çıktı şöyledir:

Qualified: S1, S4
biology: 1
history: 1
math: 2
physics: 1

Kendin dene

students = [
  { id: "S1", grades: [85, 92, 78], subjects: ["math", "physics"] },
  { id: "S2", grades: [65, 80, 90], subjects: ["math", "biology"] },
  { id: "S3", grades: [],          subjects: ["art"] },
  { id: "S4", grades: [88, 95],    subjects: ["math", "biology", "history"] },
  { id: "S5", grades: [70, 75],    subjects: ["chemistry"] }
]

# TODO: def transform_dataset(students), return { qualified_ids:, subject_counts: }
# TODO: nitelikli kimlikleri ve konu sayılarını yazdır
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Ruby derleyicisi