Рубиновая матричная печать - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть массив объектов ( нокогири xml узлов ), и у каждого узла есть name и value. Я хочу напечатать их в формате name=value без повторения цикла for.

если я использую arr * "," я могу видеть только значения, как показано ниже

4900.00,5.00,0.00,-100.00,100.00
6085.00,5.00,1285.00,1185.00,100.00
6015.00,5.00,30.00,-70.00,100.00
5915.00,5.00,0.00,-100.00,100.00
5815.00,5.00,0.00,-100.00,100.00

Есть ли что-то, что можно сделать здесь.

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Предполагая, что ваши узлы Nokogiri имеют атрибуты name и value (не дочерние элементы), вот один из способов:

# Convert the array into a new array of strings
namevals = my_array.map{ |node| "#{node['name']}=#{node['value']}" }

# See it with space delimiters
puts namevals.join(' ')

Возможно, полезная альтернатива:

# Create a hash mapping unique names to values
namevals = Hash[ my_array.map{ |node| [ node['name'], node['value'] } ]
1 голос
/ 18 ноября 2011

Примерно так должно работать:

array.each do |n|
  puts "#{n.name}=#{n.value}"
end
...