集合類物件的遍歷處理辦法

2021-09-07 03:34:16 字數 1756 閱讀 4949

titlemap reduce select reject group_by each collect inject

針對每個element進行變換並返回整個修改後的map

例如有這樣乙個字串: a = %w(a b cd)

a.map do |item|

item.upcase

enda.map(&:upcase) 一樣的效果, 

&:

代表了item, 太簡潔了,但格式難記。

把array變換為乙個值後返回。

a.reduce(:+) #=> "abcd"

(5..10).reduce(0) do |sum, value|

sum + value

end注 : 等於 (5..10).reduce(:+)

reduct(

0)裡面的0是代表sum的初始值

根據條件返回乙個子集

(1..8).select #=> [2, 4, 6, 8]

根據條件剔除乙個子集

(1..8).reject #=> [1, 3, 5, 7]

根據條件組成map

langs.group_by #=>

a=%w(chenxiao chenmin chensiheng xiaochen liyulong)

a.group_by

false=>["liyulong"], true=>["chenxiao", "chenmin", "chensiheng", "xiaochen"]

連續訪問集合的所有元素

從集合中獲得各個元素傳遞給block,block返回的結果生成新的集合。

b=(1..10).to_a

b.collect

b.map

遍歷集合中的各個元素,將各個元素累積成返回乙個值。

b.inject

1.hash = [[

:first_name

, 'shane'

], [

:last_name

, 'harvie'

]].inject({})do|result, element|  

2.result[element.first] = element.last  

3.result  

4.end

5.6.

hash 

# => 

1.[1, 2, 3, 4, 5, 6].select .collect  

# => ["2", "4", "6"]

上面**實現選取陣列中的偶數,並把它們轉換成字元型。用

inject

如何實現呢?

1.array = [1, 2, 3, 4, 5, 6].inject()do|result, element|  

2.result << element.to_sifelement % 2 == 0  

3.result  

4.end

5.6.

array 

# => ["2", "4", "6"]

是不是更直觀?

Foreach遍歷集合類原理

下面的 示例闡釋如何編寫可與foreach一起使用的非泛型集合類。該類是字串標記化拆分器,類似於 c 執行時函式 strtok s。1 using system 2using system.collections.generic 3using system.linq 4using system.te...

js遍歷物件的多種辦法 強烈推薦

資料結構對型別多種多樣。陣列 物件。對於陣列,可簡單的進行迴圈遍歷的操作,從而獲取到每乙個元素。但是物件格式的資料,並不能直接使用遍歷陣列的方式,那麼物件該如何遍歷呢?方法會返回乙個由乙個給定物件的自身可列舉屬性組成的陣列,陣列中屬性名的排列順序和正常迴圈遍歷該物件時返回的順序一致。如 let ob...

List物件集合的遍歷 物件賦值和向前臺傳遞

在前幾天的程式設計過程中,發現前台需要的資料不完整。從資料庫查出來的字段不夠,如果再多表聯查或者左聯會有我不想要的重複資料,而且會使sql更加複雜,不利於維護。所有我決定用私有方法單獨查出相應字段,然後通過增強for給每乙個物件賦值。這樣免除了多餘條,也給前台傳遞了完整的資料。根據entname 企...