单独访问嵌套数组中的对象
Access objects separately in a nested array
如何分别访问这个散列中的三个对象?
hash = {"Paul" => [25, 18]}
在此代码中,
hash.each_pair do |k, v|
print "#{k}: "
v.each do |n|
print "#{n} "
end
print "\n"
end
变量 n
作为单个对象访问 [25, 18]
。例如 |n, m|
不起作用。
你可以像下面这样
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, (v1, v2, *rest)|
print "#{k}: "
print "#{v1} "
print "#{v2} "
print "\n"
end
#=> Paul: 25 18
或者,您可以尝试以下操作:
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, v|
print "#{k}: "
v.tap { |m, n|
print "#{m} "
print "#{n} "
}
print "\n"
end
#=> Paul: 25 18
p [hash.keys, hash.values].flatten
# ["Paul", 25, 18]
如何分别访问这个散列中的三个对象?
hash = {"Paul" => [25, 18]}
在此代码中,
hash.each_pair do |k, v|
print "#{k}: "
v.each do |n|
print "#{n} "
end
print "\n"
end
变量 n
作为单个对象访问 [25, 18]
。例如 |n, m|
不起作用。
你可以像下面这样
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, (v1, v2, *rest)|
print "#{k}: "
print "#{v1} "
print "#{v2} "
print "\n"
end
#=> Paul: 25 18
或者,您可以尝试以下操作:
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, v|
print "#{k}: "
v.tap { |m, n|
print "#{m} "
print "#{n} "
}
print "\n"
end
#=> Paul: 25 18
p [hash.keys, hash.values].flatten
# ["Paul", 25, 18]