LotosLabo

プログラミング技術とか気になった情報を載せていきます

Ruby言語について10

配列(Array)クラス

要素を取得する


変数 = Arrayオブジェクト[index]

<開始と終了を指定して配列作成>


例:

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




<開始と要素数を指定して配列作成>


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


例:

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



メソッドを使った配列


変数 = Arrayオブジェクト.at(index)

<開始と終了を指定して配列を取得>


新しい配列 = Arrayオブジェクト.slice(start..end)


<開始と要素数を指定して配列を取得>

新しい配列 = Arrayオブジェクト.slice(start, len)



要素を置き換える

Arrayオブジェクト[index] = 新しい要素

<開始と終了を指定して新しい値で置換>


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



例:

ary = ["東京", "大阪", "名古屋", "福岡", "札幌"]
ary[1..2] = ["osaka", "nagoya"]




要素を挿入する

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


例:

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




配列の大きさを取得する

Arrayオブジェクト.length


例:

ary = ["東京", "大阪", "名古屋", "福岡", "札幌"]
print(ary.length)




ネストした配列を平滑化する

Arrayオブジェクト.flatten


例:

ary = [1, 2, [3, 4, 5], 6, 7]
newary = ary.flatten

[1, 2, 3, 4, 5, 6, 7]



重複した要素を取り除く


Arrayオブジェクト.uniq

例:

ary = [1, 2, 5, 2, 3, 5]
newary = ary.uniq

[1, 2, 5, 3]

要素が「nil」のものを取り除く


Arrayオブジェクト.compact


例:

ary = [1, 2, nil, 3, 4, nil]
newary = ary.compact


[1, 2, 3, 4]



指定した値と等しい要素を取り除く


Arrayオブジェクト.delete(val)


例:

ary = [1, 2, 3, 5, 4, 3]
ary.delete(3)

[1, 2, 5, 4]


要素毎に判定を行い該当する要素を取り除く


Arrayオブジェクト.delete_if {|x| ... }


例:

ary = [1, 2, 3, 5, 4, 3]
ary.delete_if {|x| x % 2 == 0}

[1, 3, 5, 4, 3]


配列内の要素を逆順に並び替える


Arrayオブジェクト.reverse


例:

ary = [1, 2, 3, 4, 5]
newary = ary.reverse

[5, 4, 3, 2, 1]


配列内の要素をソートする


Arrayオブジェクト.sort


例:

ary = [4, 2, 5, 1, 3]
newary = ary.sort

[1, 2, 3, 4, 5]


ネストされた配列を行列とみなして行と列を入れ替える


Arrayオブジェクト.transpose