Ruby Count, Length & Size


These methods can be applied on Arrays, Hashes or Objects.  Here I'm just trying to illustrate the difference between count, length and size.

Array#length

Basically length method returns number of elements in the array.
Example, suppose we have array arr as,
arr = [1,2,3,4,5]
Calling Array#length method on array will give result as,
arr.length

 => 5 

Array#size

Array#size is just an alias to the Array#length method. This method executes same as that of Array#length method internally.
Example,
arr.size

 => 5 

Array#count

It has more functionalities than length or size. This method can be used for getting number of elements based on some condition. Unlike length/size, we can pass block or an argument to count.
This can be called in three ways:
  • Array#count => without condition, Returns number of elements in Array
  • Array#count(n) => passing value, Returns number of elements having value n in Array
  • Array#count{|i| i.zero?} => passing block, Returns count based on condition invoked on each element array

Example:
Way 1:
arr.count
=> 5
Way 2:
arr.count 3
=> 1
Way 3:
c.count{|n| n < 4}
=> 3

Comments

Popular posts from this blog

Rails Kaminari - Ajax pagination

Rails mongoid has field model validation

Rails Upgrading a project