如何仅更改 Ruby 中另一个数组中缺少的元素?

How to change only elements of one array that are missing in another in Ruby?

如果我有 2 个数组,例如 a = [1, 2, 3, 4, 5] 和 b = [ 4, 7, 9, 1]

并且我想使用一种方法来更改第一个元素的元素。例如

a.map {|x| x.to_s}

但我不想更改与数组 b 中相同的元素。 在这种情况下,我想要的结果是

a = [1, "2", "3", 4, "5"]

1和4仍然是整数,因为数组b有这个元素

那么我该如何实现这个任务呢?

数组和方法只是作为例子来解释我的意思。

您可以在地图块中使用简单的三元运算符来实现此目的,根据第二个数组是否包含具有该值的元素,按原样或将相应元素添加为字符串:

a.map { |x| (b.include? x) ? x : x.to_s }
a.map!{|e| b.include?(e) ? e : e.to_s}