仅在ruby中的数组中向Integers添加1

Jas*_*ney 2 ruby string integer

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

arr = ["I", "have", 2, "dimes", "and" , 3, "nickels"]
Run Code Online (Sandbox Code Playgroud)

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

预期的输出是,

["I", "have", 3, "dimes", "and" , 4, "nickels"]
Run Code Online (Sandbox Code Playgroud)

tor*_*o2k 6

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"]
Run Code Online (Sandbox Code Playgroud)


mra*_*lau 5

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

  • 不要忘记为答案点赞。另请注意,此解决方案会修改现有的数组,而不是返回修改后的数组 **copy**。 (2认同)