给定数组["Jim Bob", "Jim","Billy Bob"]
,
如何返回长度为X的所有名称的数组。
所以,如果我在数组中搜索长度为2的名字,我应该返回:["Jim Bob", "Billy Bob"]
希望在Ruby中做到这一点。
答案 0 :(得分:1)
好像你没有搜索长度为2的名字,而是由2个名字组成。
按名称部分的数量选择:
["Jim Bob", "Jim", "Billy Bob"].select { |names| names.split.length == 2 }
#=> ["Jim Bob", "Billy Bob"]
按名称中的空格数选择:
["Jim Bob", "Jim", "Billy Bob"].select { |name| name.count(' ') == 1 }
#=> ["Jim Bob", "Billy Bob"]
答案 1 :(得分:0)
根据您想要处理带连字符的名称的方式,您可能需要:
arr = ["Jim Bob", "Jim", "Billy Bob", "Anna-Marie"]
arr.select { |names| names.scan(/[\w-]+/).size == 2 }
#=> ["Jim Bob", "Billy Bob"]