配列とは
簡単にいうとデータのかたまりのことです。
つまりデータをたくさん詰められるタンスのような役割をしています。
そして、データ1つ1つは箱のようなもので、要素と呼んでいます。
例えば、それぞれ名前(文字列)を格納するようなイメージになります。
箱1つ1つには番号が振られていて、この番号を添字と呼んでいます。添字は0から始まります。
配列の生成と定義
⚫︎配列の生成
array = Array.new #arrayは配列のこと #Arrayは配列を表すclass
array = [] #角カッコ(bracket)は配列を表す。
⚫︎配列の使い方
#配列の初期化
array = []
#数字の配列
numbers = [10,20,30]
文字列の配列
animals = [ "dog",“cat”, “bird” , "lion" ,"monkey" ,"rabbit" ]
# 様々な要素の配列
items = ["poo", 200, "bar" , false , nil]
配列のメリット
配列のメリットはいろんなデータをまとめて扱えるので便利な処理ができます。
#例 以下のa,b,c の中の最大値は?
a = 10
b = 20
c = 30
numbers = [a,b,c]
puts numbers.max #maxメソッドを使うことで,簡単に最大値を出せる。minメソッドで最小値
#補足 下のやり方で最小値と最大値が出せます。
[3, 5, 1, 2, 4].minmax # => [1, 5]
配列のデータの取得
⚫︎配列のデータの取得
numbers = [16,32,64]
numbers[0]
#要素の番号を添字で指定する。 ***添字(index)は0から始ます。
numbers = [10,20,30,40,50]
#例 上記の配列の1つ目の要素を取得せよ
puts numbers[0]
#例 上記の配列の2つ目の要素を取得せよ
puts numbers[1]
#例 上記の配列の4つ目の要素を取得せよ
puts numbers[3]
#例:上記の配列の最後の要素を取得せよ
puts numbers[-1]
配列の追加, 更新 ,削除
scores = [10,20,30,40,50]
#追加
scores << 100
[10, 20, 30, 40, 50, 100]
scores.push(20) *rubyは()を省略してもok
=> [10, 20, 30, 40, 50, 20]
#更新
scores[1] = 10
=> [10, 10, 30, 40, 50, 20]
#削除
scores.delete_at(2) *3つ目の要素を削除
=> [10, 20, 40, 50]
sports = ["サッカー", "バスケ", "野球", "バレー"]
# 例
sports.delete("サッカー")
配列のメソッドの調べ方
配列にはいろんなメソッドがあります。覚えるより調べることが大切です。
⚫︎pryで調べる
[1] pry(main)> ls []
でメソッドを調べることができます。
Rubyの色々なメソッド
よく使うものからマイナーなものまであります。
興味があるものから調べてください。
⚫︎push
animal = ["犬","猫","鳥","象","猿"]
animal.push "ライオン"
puts animal
犬
猫
鳥
象
猿
ライオン と出力
puts animalのputsをprintにすると
["犬", "猫", "鳥", "象", "猿", "ライオン"] と出力
# 補足
#putsとprintの違いは改行をするかしないかの違いです。
他に似たものはpop,shift,unshift
などがあります。
⚫︎size count length
number = [10,20,30,40,50,true,false,nil,true,nil,false]
puts number.size
puts number.count
puts number.length
で11と出力
#size count lengthの違い
#例えばtrueの数を数えたい
#puts number.count(true)で2と出てきます。
#size 大きさ length長さ
⚫︎sample
fish = ["マグロ","サケ","イワシ","アジ"]
random_fish = fish.sample
puts random_fish
#上の魚の種類がランダムに出てきます
⚫︎prepend
#先頭に配列を追加します。
animal = "速い"
animal.prepend("チーター")
puts animal
#チーター速いと出力されます。
⚫︎maxとmin
#最大値と最小値を同時に出力
level = [5,60,80,100,90,30]
puts level.minmax
#5と100が出力
⚫︎drop
#先頭の 要素を捨てて、残りの要素を出力
score = [10,20,30,40,50,60]
puts score.drop(3)
#40,50,60が出力
補足
投稿日 2021年08月20日に投稿した記事と合わせた記事です。