1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Ruby] all?メソッドとinclude?メソッドの合わせ技

Posted at

##はじめに
少し前にall?メソッドとinclude?メソッドを記事にしましたが、この二つを使うと配列の中に複数の要素が含まれているか確認するのにとても便利だったため、合わせ技を記事にしておきます。
↓それぞれの基本的な使い方はこちらをご確認ください。

##all?とinclude?の合わせ技

配列の中に複数の要素があるかどうかを調べる際にこの二つを組みわせるとすっきりとコードを記述することができます。
例えば、
[1, 2, 3, 4, 5]このような配列があったとして、1と3と5の全てがあるかどうかを調べたいとします。
ここでinclude?の登場ですが、include?の引数は一つしか渡せません。
もしinclude?だけでこれを実現しようとすると下記のようになります。

array = [1, 2, 3, 4, 5]

array.include?(1) && array.include?(3) && array.include?(5)
=> true

array.include?(1) && array.include?(3) && array.include?(6)
=>false

all?と組み合わせば上記のようなコードをすっきり書くことができます。
調べたい複数要素も配列にしておきます。

array1 = [1, 2, 3, 4, 5]
array2 = [1, 3, 5]

array2.all?{|n| array1.include?(n)}
=> true

array2 = [1, 3, 6]
array2.all?{|n| array1.include?(n)}
=> false

このようにall?のブロック変数に一つずつ放り込む特徴を利用して引数を一つしか取れないinclude?を使えるようにしてあげます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?