配列の変更
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 60/88。
配列の要素にアクセスする方法がわかったところで、次は要素を変更する方法を学びましょう。インデックスに新しい値を代入すれば、どの要素でも変更できます。
fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
puts fruits # 出力: apple, mango, cherry配列に要素を追加するには、pushメソッドまたはショベル演算子<<を使います。どちらも末尾に要素を追加します。
colors = ["red", "blue"]
colors.push("green")
colors << "yellow"
puts colors # 出力: red, blue, green, yellow要素を削除するには、Rubyにはいくつかの方法があります。popメソッドは最後の要素を削除して返し、shiftは最初の要素を削除します。
numbers = [1, 2, 3, 4]
numbers.pop # 4を削除
numbers.shift # 1を削除
puts numbers # 出力: 2, 3deleteを使って、特定の値を削除することもできます。
letters = ["a", "b", "c", "b"]
letters.delete("b")
puts letters # 出力: a, cdeleteは、指定した値のすべての出現箇所を配列から削除することに注意してください。
チャレンジ
簡単次の配列が与えられています。
tasks = ["email", "meeting", "lunch", "report", "call"]3つの入力を読み取ります。
- インデックス(整数)— 変更する位置
- 新しい値(文字列)— その位置の要素と置き換える値
- 削除する値(文字列)— 配列から削除する要素
次の操作を順番に実行します。
- 指定されたインデックスの要素を新しい値に置き換える
"review"をpushを使って配列の末尾に追加する- シャベル演算子
<<を使って"planning"を配列の末尾に追加する popを使って最後の要素を削除するshiftを使って最初の要素を削除するdeleteを使って指定された値のすべての出現箇所を削除する
puts を使って最終的な配列を出力します。
たとえば、入力が 2、break、call の場合、出力は次のようになります。
meeting
break
report
review入力が 0、standup、report の場合、出力は次のようになります。
meeting
lunch
call
review入力が 4、demo、lunch の場合、出力は次のようになります。
meeting
report
demo
review自分で試してみよう
# 初期配列
tasks = ["email", "meeting", "lunch", "report", "call"]
# 入力を読み込む
index = gets.chomp.to_i
new_value = gets.chomp
value_to_delete = gets.chomp
# TODO: 以下にコードを書く
# 1. 指定されたインデックスの要素を新しい値に置き換える
# 2. pushを使って、指示に記載されたテキストをそのまま末尾に追加する
# 3. ショベル演算子<<を使って、末尾に"planning"を追加する
# 4. popを使って末尾の要素を削除する
# 5. shiftを使って先頭の要素を削除する
# 6. deleteを使って、指定された値に一致する要素をすべて削除する
# 最終的な配列を出力する
puts tasksこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ