如何使用地图!在ruby中确定数字是否在一个范围内

时间:2016-08-01 15:55:56

标签: arrays ruby

我试图获取地图!如果它们不在范围内,则替换掉值,但我无法使范围起作用。

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

我正在处理一个有数字的二维数组,我需要将第一个数组中不在范围内的任何内容替换为另一个静态值,以便稍后进行整理。

我正在研究的阵列看起来像这样

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

需要将其转换为

[ "foo", "2", "3", "foo" ] 

2 个答案:

答案 0 :(得分:1)

您可以测试数组中元素的存在,如下所示:

(2..8).include? 1 => false

答案 1 :(得分:1)

对于给定的输入数组,您将字符串作为数组的元素。在将元素与范围进行比较之前,您需要将元素转换为numeric。有几种方法可以帮助检查数字是否属于范围的一部分:Range#cover?Range#include?Range#===

以下是一种方法:

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