07/09/2018, 18:15

Một số method hay trong Array và cách dùng ( Phần 1 )

Array trong ruby có rất nhiều method hay , cách sử dụng cũng rất đa dạng , đội khi cũng rất dễ nhầm lẫn . Hôm nay , mình xin được phép chia sẻ một vài method cùng với chức năng của chúng . 1 Count Đây là hàm dùng để đếm phần tử trong mảng , còn đếm như thế nào , đếm ra sao thì chúng ta cùng xem ...

Array trong ruby có rất nhiều method hay , cách sử dụng cũng rất đa dạng , đội khi cũng rất dễ nhầm lẫn . Hôm nay , mình xin được phép chia sẻ một vài method cùng với chức năng của chúng .

1 Count

Đây là hàm dùng để đếm phần tử trong mảng , còn đếm như thế nào , đếm ra sao thì chúng ta cùng xem một vài ví dụ nhé

  • count → int trả về số phần tử trong mảng , cái này khá là quen thuộc rồi nhỉ .
    [1, "abc", [1,2], {one: 1}, false].count          #=> 5 
    
  • count(parameter) → int, *trả về số phần tử có giá trị bằng với tham số truyền vào *
    [1, 2, 3, 4, 5, 4, 5, 2, 4].count(4)  #=> 3
    
  • count { |item| block } → int , trả về số phần tử thỏa mãn điều kiện trong block*
      [1, 3, 4 ,5, 6, 10].count{|item| item % 2 == 0 }    #=> 3
    

2 Nhóm method delete

  • delete(parameter) →Trả về giá trị của tham số hoặc nil nếu không tìm thấy phần tử . Xóa phần tử có giá trị bằng tham số truyền vào , tạo mảng mới
      a = [1, 2, 3, 4]
      a.delete(1)      #=> 1
      a                #=> [2, 3, 4]
      a.delete(10)     #=> nil 
    
  • delete(paramter) { block } → tương tự như trên , nhưng nếu không có phần tử nào có giá trị bằng tham số truyền vào thì trả về khối lệnh trong block
     a = [1, 2, 3, 4]
     a.delete(100) {"not found"}   #=> "not found"
    
  • delete_at(index) → trả về giá trị của phần tử có chỉ số index trong mảng , tạo mảng mới hoặc nil khi chỉ số nằm ngoài phạm vi
    a = [1, 2, 3, 4]
    a.delete_at(2)        #=> 2 
    a                     #=> [1, 3. 4]
    
     a = [1, 2, 3, 4]
     a.delete_at(100)     #=> nil 
    
  • delete_if { |item| block } xóa phần tử thỏa mãn block và trả về mảng mới
      a.delete_if {|x| x > 2}    #=> [1,2] 
    

3 compact và compact!

  • compact loại bỏ phần tử nil trong mảng và trả về một mảng copy của mảng ban đầu (mảng ban đầu vẫn giữ nguyên) và không chứa nil

      a = [1, 2, 3, 4, nil]
      a.compact           #=> [1, 2, 3, 4]
      a                   #=> [1, 2, 3, 4, nil]
    
  • compact! cũng loại bỏ phần từ nil trong mảng , nếu có phần tử nil thì sẽ trả về mảng mới , nếu không có thì trả về nil

     a = [1, 2, 3, 4, nil]
     a.compact!           #=> [1, 2, 3, 4]
     a                    #=> [1, 2 ,3, 4]
     
     b = [1, 2 ,3, 4]
     b.compact!           #=> nil
    

    Array còn rất nhiều các method hay tiện lợi . Mình sẽ giới thiệu tiếp ở những phần tiếp theo nhé

0