在ruby中,数组中的整数只加1



我有一个包含混合类的数组:

arr = ["I", "have", 2, "dimes", "and" , 3, "nickels"]

如何在不修改字符串的情况下对数组中的整数执行加法?

期望的输出是,

["I", "have", 3, "dimes", "and" , 4, "nickels"]
def add_to_integers(ary, n)
  ary.map { |i| i.is_a?(Integer) ? (i + n) : i }
end
add_to_integers([1, 'foo'], 1)
# => [2, "foo"]

arr.map!{|element| element.is_a?(Integer) ? element + 1 : element}

我认为maprescue是合适的,因为字符串响应+并且有许多数值类型。

arr.map { |n| begin; n + 1; rescue TypeError; n; end }

相关内容

  • 没有找到相关文章

最新更新