如果大小超过2,则将数组设置为[]

时间:2013-01-08 20:46:52

标签: ruby arrays

@ad = [2, 5, 5]
if @ad.size < 2
  @ad = []
end
@ad # => [2, 5, 5]

为什么@ad不是[]?我想存储在数组中找到的最后两条记录,如果它们是相同的,它应该找到一条新记录。

2 个答案:

答案 0 :(得分:2)

我猜你错了>

别担心,这种情况发生在最佳状态。

有一种更简洁的编写代码的方式,使用尾随if。

@ad = [2, 5, 5]
@ad = [] if @ad.size > 2
@ad # => []

答案 1 :(得分:1)

  

为什么@ad不是[]?

为什么呢?您的代码非常基本,并且它表示“如果@ad少于两个项目,则将其设置为空数组”。正如您清楚地显示的那样,@ ad 不少于两个项目,它有三个项目。你有三个看起来不到两个吗?

如果您想找到唯一项目的数量,则需要使用.uniq,但它仍然不会少于 ,它将正好是两个,因此仍然不会进入if条件。