Ruby on rails 检查数组中的所有元素是否都是相同的值

Ruby on rails 检查数组中的所有元素是否都是相同的值,ruby-on-rails,Ruby On Rails,我有一个数组“sub_status_arr”,它包含一组值 如果该数组中的所有元素都是52,则会显示一个按钮,否则会显示其他内容 我尝试了以下方法,但似乎不能正常工作。它只检查数组是否包含51,而忽略其余部分 <%if sub_status_arr.include? 51 || 53 || 54 %> display button <% else %> do something else <% end %> 如何检查数组中的所有元素是否为52 谢谢你

我有一个数组“sub_status_arr”,它包含一组值

如果该数组中的所有元素都是52,则会显示一个按钮,否则会显示其他内容

我尝试了以下方法,但似乎不能正常工作。它只检查数组是否包含51,而忽略其余部分

<%if sub_status_arr.include? 51 || 53 || 54 %>
  display button
<% else %>
  do something else
<% end %>
如何检查数组中的所有元素是否为52

谢谢你的建议

我会全力以赴吗?功能:

if sub_status_arr.all? {|ss| ss == 52}
我会试试所有的吗?功能:

if sub_status_arr.all? {|ss| ss == 52}

我可能也会使用所有?但是,这要快得多:sub_status_arr.count52==sub_starus_arr。size@LeeJarvis这是一个巧妙的把戏!我没想到要试试。我想知道提速是从哪里来的。。。当阵列的大小增长到无穷大时,它可能可以忽略不计。是的,我还没有在超大阵列上尝试过。但是我猜数组的大小是存储的,所以它不需要遍历数组中的每个对象并使用==这可能会很昂贵。我想你也可以做sub_status_arr.uniq==[52]我可能也会使用all?但是,这要快得多:sub_status_arr.count52==sub_starus_arr。size@LeeJarvis这是一个巧妙的把戏!我没想到要试试。我想知道提速是从哪里来的。。。当阵列的大小增长到无穷大时,它可能可以忽略不计。是的,我还没有在超大阵列上尝试过。但是我猜数组的大小是存储的,所以它不需要遍历数组中的每个对象并使用==这可能会很昂贵。我想你也可以做sub_status_arr.uniq==[52]