Мне нравится псевдоним "карта" сам. В нем меньше символов.
Разница с этими методами по сравнению с тем, что вы сделали, в два раза. Во-первых, вы должны использовать метод, который изменяет исходный массив (обычно это методы взрыва или методы, имена которых заканчиваются на! (Map !, collect !, ...) .each - это метод, обычно используемый для простого прохождения массива с использованием отдельных элементов. Методы Map или Collect возвращают массив, содержащий возврат от каждой итерации блока.
Следовательно, вы могли бы сделать следующее:
a = [1,2,3]
b = []
a.each do |x|
b << x+10
end
или вы можете использовать карту или метод сбора, как продемонстрировано dmarko или как здесь:
a = [1,2,3]
a = a.map {|x| x+10}