我正在做一个输入是数组的练习。如果数组包含字符串'n','s','e'和'w'以外的任何内容,或者如果数组不包含任何字符串'n',我需要一种方法返回false
, 's','e'和'w'。是否有预先定义的方法?如果没有,怎么办呢?
答案 0 :(得分:2)
我认为没有你可以使用的内置方法。如果arr
是您的数组,则可以执行以下操作。
directions = ['n', 's', 'e', 'w']
arr.any? && (arr-directions).empty?
一些例子:
arr = ['n', 's', 'n']
arr.any? && (arr-directions).empty?
#=> true
arr = ['n', 's', 'f']
arr.any? && (arr-directions).empty?
#=> false
arr = ['f', 'g']
arr.any? && (arr-directions).empty?
#=> false
arr = []
arr.any? && (arr-directions).empty?
#=> false
答案 1 :(得分:0)
据我所知,没有内置功能。你可以做下面的事情或尝试包括?你的数组上的方法。见http://apidock.com/ruby/Array/include%3F
array.each do |element|
if element != 'n' && element != 's' && element != 'e' && element != 'w'
return false
end
end
return true
这应该遍历数组的每个元素,并将每个元素与“' n'''' e'和' w& #39 ;.如果找到的东西不匹配,则返回false。如果它在没有找到任何异常的情况下完全通过它返回true。您可能还想在开头检查空字符串。
答案 2 :(得分:0)