Pemotongan array dengan Rentang
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 69 dari 88.
Terkadang kamu perlu mengambil sebagian dari array, bukan mengakses elemen satu per satu. Ruby memungkinkan kamu mengambil irisan array menggunakan rentang, yang membuat array baru berisi hanya elemen yang kamu tentukan.
Untuk mengambil irisan array dengan rentang, letakkan rentang di dalam tanda kurung siku:
numbers = [10, 20, 30, 40, 50]
slice = numbers[1..3]
puts slice # Output: 20, 30, 40Rentang 1..3 mencakup elemen pada indeks 1, 2, dan 3. Ingat, indeks array dimulai dari 0, jadi indeks 1 adalah elemen kedua.
Kamu juga bisa menggunakan rentang tiga titik (...) untuk mengecualikan indeks terakhir:
letters = ["a", "b", "c", "d", "e"]
slice = letters[0...3]
puts slice # Output: a, b, cDi sini, 0...3 mencakup indeks 0, 1, dan 2, tetapi berhenti sebelum indeks 3.
Indeks negatif juga berfungsi dengan rentang. Indeks ini dihitung dari akhir array, dengan -1 sebagai elemen terakhir:
colors = ["red", "green", "blue", "yellow"]
slice = colors[1..-1]
puts slice # Output: green, blue, yellowIni mengambil semua elemen mulai dari indeks 1 hingga elemen terakhir, yang berguna saat kamu ingin melewati elemen pertama tanpa mengetahui panjang array.
Tantangan
MudahBaca dua input:
- Satu baris berisi bilangan bulat yang dipisahkan dengan koma (misalnya,
10,20,30,40,50,60,70) - Spesifikasi rentang dalam format
start..endataustart...end(misalnya,2..5atau1...4)
Pisahkan input pertama menjadi array bilangan bulat. Lalu gunakan rentang dari input kedua untuk mengambil irisan array dan cetak setiap elemen dari bagian yang diiris pada barisnya sendiri.
Input rentang akan menggunakan dua titik (..) untuk menyertakan indeks akhir, atau tiga titik (...) untuk mengecualikannya.
Misalnya, jika inputnya adalah 10,20,30,40,50,60,70 dan 2..5, outputnya harus berupa:
30
40
50
60Jika inputnya adalah 5,10,15,20,25,30 dan 0...3, outputnya harus berupa:
5
10
15Jika inputnya adalah 100,200,300,400,500 dan 1..-1, outputnya harus berupa:
200
300
400
500Jika inputnya adalah a,b,c,d,e,f dan -3..-1, outputnya harus berupa:
d
e
fCoba sendiri
# Baca nilai-nilai yang dipisahkan koma
input_values = gets.chomp
# Baca spesifikasi rentang
range_spec = gets.chomp
# TODO: Tulis kodemu di bawah ini
# 1. Pisahkan input_values menjadi array
# 2. Uraikan range_spec untuk menentukan awal, akhir, dan apakah akan menggunakan .. atau ...
# 3. Ambil bagian dari array menggunakan rentang yang sesuai
# 4. Cetak setiap elemen dari bagian yang diambil pada baris tersendiriPelajaran 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 FizzBuzz13array Tingkat Lanjut
Pemotongan array dengan RentangPemotongan array dengan IndeksOperator arraymethod include?2Variabel 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