使用ruby确定术语数组是否包含一个且仅包含一个重复的术语

使用ruby确定术语数组是否包含一个且仅包含一个重复的术语,ruby,Ruby,在范畴逻辑中,范畴三段论需要四个术语,但只能有三个唯一的术语;这是唯一一个可以而且必须重复的术语 我试图为此编写一个Ruby测试,但遇到了一点麻烦 考虑以下三个术语数组,其中第一个是有效列表,而其他两个无效(termarray2包含4个唯一术语,termarray3仅包含2个唯一术语) 我想写一个名为three\u terms? 对于termarray1和termarray2和termarray3 你知道我该怎么做吗?uniq方法返回数组中唯一的元素 这应该起作用: array.uniq.cou

在范畴逻辑中,范畴三段论需要四个术语,但只能有三个唯一的术语;这是唯一一个可以而且必须重复的术语

我试图为此编写一个Ruby测试,但遇到了一点麻烦

考虑以下三个术语数组,其中第一个是有效列表,而其他两个无效(termarray2包含4个唯一术语,termarray3仅包含2个唯一术语)

我想写一个名为
three\u terms?

对于
termarray1
termarray2
termarray3


你知道我该怎么做吗?

uniq方法返回数组中唯一的元素

这应该起作用:

array.uniq.count == 3
但是您提到的测试还检查原始数组是否有四个元素。因此,整个检查应为:

(array.count == 4) && (array.uniq.count == 3)

uniq
方法返回数组中唯一的元素

这应该起作用:

array.uniq.count == 3
但是您提到的测试还检查原始数组是否有四个元素。因此,整个检查应为:

(array.count == 4) && (array.uniq.count == 3)

检查唯一元素的大小是否为
3
(使用):

您还可以使用
三个术语来修补
阵列

class Array
  def three_terms?
    uniq.size == 3
  end
end

检查唯一元素的大小是否为
3
(使用):

您还可以使用
三个术语来修补
阵列

class Array
  def three_terms?
    uniq.size == 3
  end
end