У меня есть следующий массив:
input_array = ["aa", "aa", "--", "--", "--", "aa", "--", "--"]
Как заменить значения "aa" в приведенном выше примере на увеличивающееся число?Как следующий результат:
output_array = [1, 2, "--", "--", "--", 3, "--", "--"]
Я пытаюсь сохранить счетчик, а затем зациклить несколько раз для данного ключа:
Это работает, но я искал, если есть лучший способчтобы решить это -
a = ["-W-", "-C-", "-A-", "-A-", "-W-", "-W-", "-C-", "-A-", "-A-", "-W-", "---", "---", "---", "-A-", "-W-"]
counts = {"-A-"=>0, "-C-"=>0, "-W-"=>0, "---"=>0 }
a.each { |e| counts[e] += 1 }
counter = 1
counts.each do |key, value|
ax = a.each_index.select{ |i| a[i] == key }
ax.each_with_index do |ss, si|
a[ss] = counter
counter += 1
end
end
p a