Ruby Tips : Mengubah Isi Array Menjadi Tipe Data Tertentu
Posted: December 15th, 2009 | Author: gozali | Filed under: Programming, Ruby | Tags: ruby, snippets, tips | 4 Comments »Sebagai contoh kita ingin menggabungkan dua buah Array dengan elemen yang bervariasi, misalnya String dan Integer dan membuang elemen yang duplicated.
Ilustrasinya sebagai berikut :
1 2 | x = [1, 2, 3, 4] y = ["1", "2", "3", 5] |
Array x memiliki elemen dengan tipe data Integer sedangkan Array y memiliki String dan Integer yang sebenarnya jika String tersebut diubah tipe datanya menjadi Integer akan memiliki elemen yang hampir sama dengan Array x. Lalu bagaimana cara agar ketika kedua Array tersebut digabungkan kita mendapatkan Array dengan data yang unik?
Caranya sangat sederhana dan cukup satu baris saja di Ruby :
Dari String ke Integer
1 2 3 4 | irb(main):003:0> z = (x+ y).flatten.collect { |i| i.to_i } => [1, 2, 3, 4, 1, 2, 3, 5] irb(main):004:0> z.uniq => [1, 2, 3, 4, 5] |
Dari Integer ke String :
1 2 3 4 | irb(main):005:0> z = (x+ y).flatten.collect { |i| i.to_s } => ["1", "2", "3", "4", "1", "2", "3", "5"] irb(main):006:0> z.uniq => ["1", "2", "3", "4", "5"] |
Atau bahkan Float
1 2 3 4 | irb(main):007:0> z = (x+ y).flatten.collect { |i| i.to_f } => [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 5.0] irb(main):008:0> z.uniq => [1.0, 2.0, 3.0, 4.0, 5.0] |
Demikian, semoga bermanfaat











Saya catet
Mau tanya mas, flatten itu fungsinya untuk apa?
a = [ 1, 2, [3, [4, 5] ] ]
a.flatten! #=> [1, 2, 3, 4, 5]
Ruby array is very powerful
Thks infonya
sama2 mas Fahmi