Menu
CoddyTech

Select dan Reject

Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 21 dari 56.

Method select mengembalikan array baru yang hanya berisi elemen-elemen yang bloknya mengembalikan nilai yang dianggap benar. Inilah cara Ruby menuliskan "filter".

numbers = [1, 2, 3, 4, 5, 6]
evens = numbers.select { |n| n.even? }
puts evens.inspect   # [2, 4, 6]

reject adalah kebalikannya, metode ini mempertahankan semua elemen yang bloknya mengembalikan false:

odds = numbers.reject { |n| n.even? }
puts odds.inspect    # [1, 3, 5]

Keduanya mengembalikan array baru; array asli tidak berubah.

Blok tersebut hanyalah predikat, apa pun yang menghasilkan nilai true atau false bisa digunakan:

words = ["hi", "hello", "hey", "yo"]
long  = words.select { |w| w.length >= 3 }
puts long.inspect    # ["hello", "hey"]
challenge icon

Tantangan

Pemula

Baca list bilangan bulat yang dipisahkan dengan koma. Cetak dua baris:

  1. Bilangan yang lebih besar dari 10 (gunakan select), digabungkan dengan ,
  2. Bilangan yang tidak habis dibagi 3 (gunakan reject), digabungkan dengan ,

Untuk input 3,7,12,15,20, output-nya adalah:

12, 15, 20
7, 20

Coba sendiri

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: baris 1, numbers > 10, gabungkan dengan ", "
# TODO: baris 2, numbers yang TIDAK habis dibagi 3, gabungkan dengan ", "
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Ruby online