Array#each mengeksekusi blok yang diberikan untuk setiap elemen array, lalu mengembalikan array itu sendiri.
Array#map juga mengeksekusi blok yang diberikan untuk setiap elemen larik, tetapi mengembalikan larik baru yang nilainya adalah nilai kembalian dari setiap iterasi blok.
Contoh: asumsikan Anda memiliki array yang didefinisikan sebagai berikut:
arr = ["tokyo", "london", "rio"]
Kemudian coba jalankan each:
arr.each { |element| element.capitalize }
# => ["tokyo", "london", "rio"]
Perhatikan nilai yang dikembalikan hanyalah array yang sama. Kode di dalam eachblok dijalankan, tetapi nilai yang dihitung tidak dikembalikan; dan karena kode tersebut tidak memiliki efek samping, contoh ini tidak berfungsi.
Sebaliknya, memanggil metode larik akan mapmengembalikan larik baru yang elemennya adalah nilai kembalian dari setiap putaran menjalankan mapblok:
arr.map { |element| element.capitalize }
# => ["Tokyo", "London", "Rio"]