要素を挿入する

広告

既存の配列の中の指定の位置に新しい要素を挿入するメソッドは用意されていませんが、指定した開始インデックスと要素数を指定して新しい値に置き換える構文を応用して要素の挿入が行えます。

Arrayオブジェクト[start, len] = 新しい要素

「start」に指定したインデックスから「len」要素数分の要素を新しい要素で置換します。そこで要素数として「0」を指定することで指定したインデックスの位置から0個の要素を新しい要素で置き換えることになるため、結果として指定したインデックスの位置に新しい要素を挿入することになります。

ary = ["東京", "大阪", "名古屋", "福岡", "札幌"]
ary[1, 0] = "横浜"

上記の場合は対象の配列の1番目の位置に新しい要素を挿入しています。結果は次のようになります。

ary = ["東京", "横浜", "大阪", "名古屋", "福岡", "札幌"]

挿入する値として配列などを指定することも可能です。

ary = ["東京", "大阪", "名古屋", "福岡", "札幌"]
ary[1, 0] = ["横浜", "神戸"]

上記の場合は対象の配列の1番目の位置に新しい2つの要素を挿入しています。結果は次のようになります。

ary = ["東京", "横浜", "神戸", "大阪", "名古屋", "福岡", "札幌"]

サンプルプログラム

実際に試してみます。

LibraryArray10.rb

#! ruby -Ks

ary = ["東京", "大阪", "名古屋", "福岡", "札幌"]

print("元の配列:¥n")
ary.each do |youso|
  print(youso, "¥n")
end

ary[1, 0] = ["横浜", "神戸"]

print("1番目の位置に2つの要素を挿入:¥n")
ary.each do |youso|
  print(youso, "¥n")
end

実行結果は次のようになります。

指定の位置に新しい要素を挿入

( Written by Tatsuo Ikura )