我想随机改变数组的一个或多个元素。例如,使用原始数组:
original = ['john', '124 Gore st', 20, 'manager']
更改后:
new_array = ['johnz', '124 Gore st', 'hall22', 'manager']
我这样做了:
x = %w(hello there world)
x.collect! { |element|
random_ele = x.sample
(element == random_ele) ? "newele" : element
}
puts x.to_s
它正在运作。有没有更好的方法呢?
答案 0 :(得分:2)
如果您只想替换部分条目:
require 'securerandom'
def swaperoo(array, factor)
array.map do |e|
if (SecureRandom.rand < factor)
yield
else
e
end
end
end
就像你可以这样做:
original = ['john', '124 Gore st', 20, 'manager']
swaperoo(original, 0.1) do
'hall%d' % SecureRandom.rand(1..100)
end
答案 1 :(得分:1)
您可以这样做:
substitute