我有这个问题:
给定哈希成员族,将键作为标题和数组 将名称作为值,使用Ruby的内置方法进行收集 直系亲属(“兄弟”和“姐妹”)只是一个新的 阵列。
使用此哈希:
family = {
uncles:["bob", "joe", "steve"],
sisters: ["jane", "jill", "beth"],
brothers: ["frank", "rob", "david"],
aunts: ["mary", "sally", "susan"]
}
我该怎么做?我甚至不确定我需要使用哪种内置方法。通过这种方式,我是Ruby的初学者。
我有这个:
new_family = Array.new
new_family = family.values_at(:brothers, :sisters)
p new_family
这给了我:
[["frank", "rob", "david"], ["jane", "jill", "beth"]]
但我不确定我这样做是否正确?我觉得我可能没有完全理解这个问题?
答案 0 :(得分:3)
有许多不同的方法可以做到这一点,你可以简单地做一些事情:
new_family = family[:brothers] + family[:sisters]
或者,就像你上面一样:
new_family = family.values_at(:brothers, :sisters).flatten
答案 1 :(得分:1)
这是另一个:
new_family = [:brothers, :sisters].flat_map(&family.method(:[]))
#=> ["frank", "rob", "david", "jane", "jill", "beth"]