2016-08-01 5 views
0

私はマップを取得しようとしている!範囲にない場合は値を代用しますが、範囲を取得することはできません。地図の使い方!数が範囲内にあるかどうかを判断するためにルビーで

array[0].map! { |x| x != (2..8) ? "foo" : x} 

私は数字を持っていると私はそれが後に選別することができますので、別の静的な値を持つ最初の配列内に存在しない範囲で何かを交換する必要があります2D配列で働いています。

私が働いている配列は、あなたが好きな配列の要素の存在をテストすることができ

[ "foo", "2", "3", "foo" ] 
+0

範囲は常にtruthyです:

はここでこれを行うための一つの方法です。 case文ではそれぞれの場合に '==='を使用するため、case文で動作します。 –

答えて

1

与えられた入力配列に対して、配列の要素としての文字列があります。範囲と比較するには、要素をnumericに変換する必要があります。数字が範囲の一部であるかどうかを確認するのに役立つメソッドはほとんどありません:Range#cover?Range#include?およびRange#===

array[0].map! { |x| (2..8) === x.to_i ? x : "foo"} 
+0

これは完璧に動作します、ありがとうございます。 – monkeyatwar

1

のように見えるように変換する必要があり、この

[ "bar", "2", "3", "baz"] 

のようになります。これは:

(2..8).include? 1 => false 
関連する問題