Ruby zip / join метод - PullRequest
       7

Ruby zip / join метод

0 голосов
/ 20 июля 2011

Сейчас я использую метод zip для объединения двух параллельных массивов; один содержит данные, которые я использую, а другой содержит метки для этих данных.

outFile.puts failure_labels.zip(failure_percents).join("|")

Этот вызов дает мне такой вывод:

Build/Compile Failure|26.67%|Unknown Failure|25.45%|User Manifest Failure|25.21
%|Incomplete Build|2.79%|Invalid Clientspec|18.06%|Coverity System Error|0.66%|
Do Not Use Error|0.36%|Version Failure|0.36%|Coverity Defects|0.17%|Flash Build
Error|0.17%|Space Insufficient|0.13%|Integrate Failure|0.04%

Но то, что я пытаюсь сделать, - это соединить только внутренние элементы 2d-массива, созданного zip, что-то вроде этого:

Build/Compile Failure 26.67%|Unknown Failure 25.45%|User Manifest Failure 25.21
%|Incomplete Build 2.79%|Invalid Clientspec 18.06%|Coverity System Error 0.66%|
Do Not Use Error 0.36%|Version Failure 0.36%|Coverity Defects 0.17%|Flash Build
Error 0.17%|Space Insufficient 0.13%|Integrate Failure 0.04%

Есть ли способ сделать это с нативным соединением? или мне нужно создать свою собственную функцию?

Спасибо

1 Ответ

4 голосов
/ 20 июля 2011

Кто-то может подумать о чем-то более умном, но вот краткий выстрел:

> a = %w(1 2 3 4 5)
=> ["1", "2", "3", "4", "5"]
> b = %w(a b c d e)
=> ["a", "b", "c", "d", "e"]
> a.zip(b).map { |ab| ab.join(" ") }.join("|")
=> "1 a|2 b|3 c|4 d|5 e"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...