ruby - помогите преобразовать массив в массив массивов определенного типа, дублируя ключи как [ключ, значение] в списке - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу преобразовать массив в массив определенного типа.

array = ["Project", "Publication"]

в

array_of_arrays = [["Project", "Project"], ["Publication", "Publication"]]

Массив не ограничивается только вторым размером. Это растущий список, поэтому ищем какую-нибудь функцию для преобразования его в array_of_arrays.

Ценю любую помощь.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018
def replicate(arr, n)
  arr.map { |e| [e]*n }
end

replicate(["Project", "Publication"], 2)
  #=> [["Project", "Project"], ["Publication", "Publication"]]
replicate(["Project", "Publication"], 3)
  #=> [["Project", "Project", "Project"], ["Publication", "Publication", "Publication"]]
replicate([["ProjectA", "ProjectB"], "Publication"], 2)
  #=> [[["ProjectA", "ProjectB"], ["ProjectA", "ProjectB"]], ["Publication", "Publication"]
0 голосов
/ 15 ноября 2018

Это то, с чем карта может справиться довольно легко.

a = ["Project", "Publication"]
a.map{|x| [x,x]}
#=> [["Project", "Project"], ["Publication", "Publication"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...