我可以生成几行代码来实现这一点,但我想知道是否有一种干净的Rubyesque方法可以实现这一点.如果我还不清楚,我要寻找的是一个数组方法,如果给定[3,3,3,3,3]["rabbits","rabbits","rabbits"],它将返回true,但如果给定[1,2,3,4,5]["rabbits","rabbits","hares"],它将返回false.

谢谢

推荐答案

class Array
  def same_values?
    self.uniq.length == 1
  end
end


[1, 1, 1, 1].same_values?
[1, 2, 3, 4].same_values?

这个怎么样?但对于空数组,它返回false,您可以将其更改为<;=1,在这种情况下,它将返回true.取决于你需要什么.

Ruby相关问答推荐

Ruby类构造函数使用`()`而不是`. new()`

这个#divmod 方法输出这个结果是做什么的?

Ruby:如何在 vanilla ruby​​ 中使用有效支持日期?

当 node 名称是/包含整数时,使用 Nokogiri 解析非 XML 文档

判断一个数组是否是Ruby中另一个数组的子集

Rack并发 - rack.multithread、async.callback 或两者兼而有之?

Ruby 的 .() 运算符是如何工作的?

如何增加 ruby​​ 应用程序的堆栈大小.递归应用程序获取:堆栈级别太深(SystemStackError)

Ruby 连接字符串并添加空格

如何判断我是从 JRuby 还是 Ruby 运行?

Ruby - 查看端口是否打开

Sinatra 是多线程的吗?

获取类中声明的所有实例变量

从命令行使用Bundle 器将 gem 添加到 gemfile

在本地覆盖 Vagrant 配置设置(每个开发人员)

如何合并 Ruby 哈希

if语句末尾带有then有什么区别?

Ruby 中的 each 和 collect 方法有什么不同

未加载库:/opt/local/lib/libssl.1.0.0.dylib (LoadError)

你可以在Ruby中使用分号吗?