Menu
CoddyTech

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, 40

Rentang 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, c

Di 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, yellow

Ini mengambil semua elemen mulai dari indeks 1 hingga elemen terakhir, yang berguna saat kamu ingin melewati elemen pertama tanpa mengetahui panjang array.

challenge icon

Tantangan

Mudah

Baca dua input:

  1. Satu baris berisi bilangan bulat yang dipisahkan dengan koma (misalnya, 10,20,30,40,50,60,70)
  2. Spesifikasi rentang dalam format start..end atau start...end (misalnya, 2..5 atau 1...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
60

Jika inputnya adalah 5,10,15,20,25,30 dan 0...3, outputnya harus berupa:

5
10
15

Jika inputnya adalah 100,200,300,400,500 dan 1..-1, outputnya harus berupa:

200
300
400
500

Jika inputnya adalah a,b,c,d,e,f dan -3..-1, outputnya harus berupa:

d
e
f

Coba 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 tersendiri
quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Ruby online