Pemotongan array dengan Rentang
Termasuk bagian Dasar-Dasar dalam perjalanan Ruby di Coddy. Pelajaran 69 dari 88.
Terkadang kamu perlu mengambil sebagian dari array alih-alih mengakses elemen satu per satu. Ruby memungkinkanmu 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 # Menampilkan 20, 30, dan 40, masing-masing di baris terpisahRentang 1..3 mencakup elemen pada indeks 1, 2, dan 3. Ingat bahwa 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 # Menampilkan a, b, dan c, masing-masing pada baris tersendiriDi 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 # Menampilkan green, blue, dan yellow, masing-masing pada baris terpisahIni mengekstrak 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 koma (misalnya,
10,20,30,40,50,60,70) - Spesifikasi rentang dengan format
start..endataustart...end(misalnya,2..5atau1...4)
Pisahkan input pertama menjadi array berisi bilangan bulat. Lalu gunakan rentang dari input kedua untuk mengambil irisan array dan mencetak setiap elemennya pada baris tersendiri.
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, output-nya seharusnya:
30
40
50
60Jika inputnya adalah 5,10,15,20,25,30 dan 0...3, output-nya seharusnya:
5
10
15Jika inputnya adalah 100,200,300,400,500 dan 1..-1, output-nya seharusnya:
200
300
400
500Jika inputnya adalah a,b,c,d,e,f dan -3..-1, output-nya seharusnya:
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 sebuah 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