この章では配列の順番を変えたりするArrayクラスのメソッドなどについて説明します。これらのメソッドはArrayクラスにあらかじめ備わっている機能です。
初めにsliceメソッドについて説明します。
結果は
sliceのもう一つの使い方を説明します。
結果は「犬」です。
また
次はsliceの引数に範囲演算子を使った例です。
sliceは連続した要素しか切り取ることが出来ませんでした。
連続していない配列の要素を切り取るには
では例をみてみましょう。
結果は
次は配列同士を足したり引いたりする演算を説明します。
では例をみてみましょう。
結果は
結果は
num2の6,7,8はnum1には存在しないので無視されます。
結果は
次は配列の先頭や末尾に新たな要素を付け加えたり、取り除いたりするメソッドについて説明します。
初めにunshiftメソッドについて説明します。
結果は以下の通りです。
次はpushメソッドについて説明します。
次はpopメソッドについて説明します。
次はfirstメソッドについて説明します。
次はlastメソッドについて説明します。
次はconcatメソッドについて説明します。
違いは「!」が付いているか、付いていないかです。
compact!メソッドもnilを取り除きますが、新しい配列を作るのではなく、元の配列自体を操作します。
では例をみてみましょう。
次の例をみてみましょう。
結果は
試しに
次はdeleteメソッドについて説明します。
では例をみてみましょう。
次はdelete_atメソッドについて説明します。
では例をみてみましょう。
結果は
次はdelete_ifメソッドについて説明します。
では例をみてみましょう。
配列のそれぞれの要素が変数にセットされ、ブロック内の条件に合致した要素だけを削除します。
この例では7を超えている要素を削除しますので、8、9が削除されます。
結果は
次はreject!メソッドについて説明します。
では例をみてみましょう。
reject!メソッドは条件に合致した要素だけを削除します。
条件に合致した要素を新しい配列に入れるのではなく、元の配列に対して操作を行います。
結果は
次はrejectメソッドについて説明します。
では例をみてみましょう。
条件に合致した要素を新しい配列に入れます。
reject!メソッドは元の配列に対する操作でしたね。
結果は
次はuniq!メソッドとuniqメソッドについて説明します。
uniq!メソッドは配列の要素の中で同じ要素があった場合には1つにまとめます。
また、このメソッドは新しい配列を作るのではなく、元の配列に対して操作を行います。
uniqメソッドは配列の要素の中で同じ要素があった場合は1つにまとめます。
また、このメソッドは新しい配列を作ります。
次の例をみてみましょう。
次はcollec!メソッドについて説明します。
では例をみてみましょう。
また、このメソッドは新しい配列を作るのではなく、元の配列に対して操作を行います。
この例では配列の要素に100を足したものを元の配列に入れています。
結果は
これはmap!メソッドを使って、
次はcollectメソッドについて説明します。
では例をみてみましょう。
結果は
次はfillメソッドについて説明します。
では例をみてみましょう。
このメソッドは新たな配列を作成するのではなく元の配列に対して操作を行います。
結果は
fillメソッドの別の例をみてみましょう。
結果は
fillメソッドの別の例をみてみましょう。
結果は
さらにfillメソッドの別の例をみてみましょう。
この例では3から6までの添え字の範囲を猫に変えています。
結果は
次はreverse!メソッドについて説明します。
では例をみてみましょう。
この動作は新たな配列に対してではなく、元の配列に対して行われます。
結果は
次はreverseメソッドについて説明します。
では例をみてみましょう。
この動作は元の配列に対してではなく、新たな配列に対して行われます。
結果は
次はsort!メソッドについて説明します。
では例をみてみましょう。
この動作は新たな配列に対してではなく、元の配列に対して行われます。
結果は
次はsortメソッドについて説明します。
では例をみてみましょう。
結果は
次の例をみてみましょう。
この動作は元の配列に対してではなく、新たな配列に対して行われます。
この例のブロック内は
結果は
次の例をみてみましょう。
この動作は新たな配列に対してではなく、元の配列に対して行われます。
基本構文は以下の通りです。