Как я могу преобразовать массив массивов в одну строку в Ruby
У меня есть массив массивов, выглядящих так:
arr = [[0,0,0,0,0], [0,0,1,0,0], [0,1,0,1,0], [0,0,1,0,0], [0,0,0,0,0]]
и я хочу, чтобы это выглядело так:
00000
00100
01010
00100
00000
Я пытался так:
arr.each {|a| p a.join(',').gsub(',','')}
но это выводит это так:
00000
00100
01010
00100
00000
с кавычками " " "в начале и конце каждой строки. Я хочу, чтобы это был один кусок, который начинается с кавычки, затем строки и в конце - кавычка. Но не цитирую каждый ряд.
3 ответа
puts arr.map(&:join)
призвание map
проходит через массив (внешний) и для каждой записи вызывает join
Способ; он возвращает новый массив, где каждая запись была заменена результатом.
join
вызов метода массива to_s
на каждой части массива и объединяет их с необязательным разделителем. призвание join
без аргументов использует пустую строку (без разделителя).
призвание puts
в массиве печатает каждую запись в отдельной строке.
Или, если вы хотите, чтобы конечные результаты были представлены в виде одной строки со встроенными переводами строки:
str = arr.map(&:join).join("\n")