我有一个对象数组(nokogiri 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
假设您的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'] } ]
应该这样做:
array.each do |n|
puts "#{n.name}=#{n.value}"
end