[Ruby] selectメソッドでフィルタリング

CODEPREPが無料期間なのでお勉強中。

初めて、自分で解けました!

Ruby演習 Hash編の1-5です。

(問題)配列から特定の要素を取り除くfilterメソッドを実装しましょう。

filterメソッドは配列arrayとある要素itemを引数に取り、arrayからitemに一致する要素を取り除いた配列を返すメソッドです

  • filter([“a”, “b”, “c”, “c”, “d”], “c”) -> [“a”, b”, “d”]

自分で実装した答え

def filter(array, item)
array.select{ |num| num != item}
end

 

引数arrayには配列が渡って来ます。

itemには数字が入って来ます。

selectメソッドは条件に合う要素を探して集めます。ブロック引数に要素を入れながらブロックを繰り返し、ブロックの戻り値が真になったときの要素を集め、新しい配列にして返します。

|num|にarrayの配列が一つずつ入って来て、 num != item なので、numとitemの数字が違った場合にtrueを返します。そしてその数字で新たな配列が作られます。

 

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)