Ruby 針對陣列的一些處理方法 — map, reduce, select

icelandcheng
2 min readJun 21, 2018

--

在Ruby 中 ,若要對陣列中的值進行一些處理,常會使用到map、reduce及select等方法,三個方式主要作用以及用法整理如下,簡單來說:

map會去針對陣列中每一個值去執行一些計算,然後產生一個新的陣列,所以可以在map後面的{}中撰寫要針對陣列中每一個值要進行的計算式。

reduce則是可以設定一個初始值,然後讓初始值與陣列中的每一個值進行運算,最後得到一個值,例如可以設定初始值為0,然後累加陣列中的每一個值,得到這個陣列的值的總和。

select則可以根據一些條件,將陣列中符合的值篩出,另外產生一個陣列。

與JavaScript的比較

在之前的文章其實也有討論到,JavaScript其實也有類似上述對陣列進行處理的一些方法,在這邊特別將上述方法與JavaScript使用的方式做一個表列,下表是以list=[2,3,4]作為範例舉例。統整說明如下:

Ruby中map的作用與JavaScript中的map以及forEach雷同,只是JavaScript的forEach方法只會依序對陣列中的值作用,不會另外產生一個新陣列,所以要先建一個空陣列,再將作用完的值塞進陣列中。

Ruby中reduce的使用方法也與JavaScript的使用方法雷同,只是撰寫方式略有不同。

Ruby中的select方法來篩選陣列中的值則是與JavaScript中的filter類似,filter一樣也可以設定一些條件來找出陣列中符合的值。

參考資料:

為你自己學 Ruby on Rails — 數字、字串、陣列、範圍、雜湊、符號

JavaScript Functional Programming — map, filter and reduce

上手使用 JavaScript 的 Map、Reduce 吧

Javascript 中的map、for each、filter、reduce

--

--

icelandcheng

Programming Skill learner and Sharer | Ruby on Rails | Golang | Vue.js | Web Map API