Map dan Collect
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 68 dari 88.
Meskipun each sangat cocok untuk melakukan tindakan pada elemen, terkadang kamu ingin mengubah sebuah array menjadi array baru. Method map (juga disebut collect) melakukan hal ini: method ini membuat array baru yang berisi hasil menjalankan blokmu pada setiap elemen.
numbers = [1, 2, 3, 4]
doubled = numbers.map { |n| n * 2 }
puts doubled # Output: 2, 4, 6, 8Perbedaan utama dari each adalah map mengembalikan array baru dengan nilai yang telah diubah. array asli tetap tidak berubah.
Berikut contoh praktis untuk mengonversi suhu dari Celsius ke Fahrenheit:
celsius = [0, 20, 100]
fahrenheit = celsius.map { |c| c * 9 / 5 + 32 }
puts fahrenheit # Output: 32, 68, 212Kamu juga bisa menggunakan map dengan string:
names = ["alice", "bob"]
capitalized = names.map { |name| name.capitalize }
puts capitalized # Output: Alice, BobMethod map dan collect identik. Ruby menyediakan kedua nama ini, jadi kamu bisa menggunakan nama yang lebih enak dibaca dalam kodemu. Sebagian besar developer Ruby lebih memilih map karena lebih singkat.
Tantangan
MudahBaca satu baris input yang berisi bilangan bulat yang dipisahkan koma (misalnya, 2,4,6,8,10).
Pisahkan input menjadi array bilangan bulat, lalu gunakan method map untuk membuat array baru yang setiap angkanya dikuadratkan (dikalikan dengan dirinya sendiri).
Cetak setiap elemen dari array kuadrat baru pada barisnya sendiri.
Misalnya, jika input-nya 2,4,6,8,10, output-nya harus seperti berikut:
4
16
36
64
100Jika input-nya 1,2,3,4,5, output-nya harus seperti berikut:
1
4
9
16
25Jika input-nya 3,7,11, output-nya harus seperti berikut:
9
49
121Jika input-nya 10, output-nya harus seperti berikut:
100Coba sendiri
# Baca input yang dipisahkan koma
input = gets.chomp
# TODO: Tulis kodemu di bawah ini
# 1. Pisahkan string input menjadi array berisi bilangan bulat
# 2. Gunakan method map untuk menguadratkan setiap bilangan
# 3. Cetak setiap bilangan hasil kuadrat pada baris terpisahPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ringkasan: Logika SederhanaOperator Logika Bagian 3Operator Logika Bagian 47Kalkulator Pembagian Tagihan
Pesan Selamat DatangMengambil input dari Pengguna10FizzBuzz dengan Variasi
Gambaran Umum PermainanMetode FizzBuzz2Variabel dan Tipe Data
Angka dan VariabelTipe Data stringTipe Data booleanTipe Data SymbolMemeriksa Tipe DataKonvensi PenamaanRangkuman: Membuat Variabel5Pengambilan Keputusan
Pernyataan IfIf - ElseRekap: Kalkulator SederhanaIf - Else BersarangPernyataan Unless8Perulangan
For Loop dengan RentangWhile LoopBreakNextRangkuman: FaktorialTimes LoopUntil LoopPerulangan BersarangRangkuman: Input Dinamis3Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaRingkasan: Matematika SederhanaOperator Perbandingan6Dasar Input dan Output
Output dengan putsOutput dengan print dan pOutput dengan VariabelInput dengan getsMethod chompKonversi TipeRangkuman: Kalkulator UsiaRangkuman: Benar atau Salah9method
Mendefinisikan methodParameter methodNilai KembalianRangkuman: Sigma methodRangkuman: Validation methodNilai Default Parameter12Melakukan Perulangan pada Koleksi
Iterator EachEach dengan IndeksMelakukan Perulangan pada StringMap dan CollectLatihan sendiri: Compiler Ruby online