在Ruby中,數組有很多內置方法可以幫助你簡化代碼邏輯。這里列舉一些常用的方法:
map
:遍歷數組并對每個元素執行指定操作,返回一個新的數組。numbers = [1, 2, 3, 4, 5]
squares = numbers.map { |number| number ** 2 }
filter
:遍歷數組并根據指定條件過濾元素,返回一個新的數組。numbers = [1, 2, 3, 4, 5]
even_numbers = numbers.filter { |number| number.even? }
select
:與filter
類似,但更明確地表示選擇滿足條件的元素。numbers = [1, 2, 3, 4, 5]
selected_numbers = numbers.select { |number| number % 2 == 0 }
reduce
:遍歷數組并對元素執行累積操作,最終返回一個值。numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce(0) { |total, number| total + number }
inject
:與reduce
類似,但提供了一個初始值。numbers = [1, 2, 3, 4, 5]
product = numbers.inject(1) { |total, number| total * number }
find
:遍歷數組并返回第一個滿足條件的元素。numbers = [1, 2, 3, 4, 5]
first_even_number = numbers.find { |number| number.even? }
find_all
:與select
類似,但返回所有滿足條件的元素。numbers = [1, 2, 3, 4, 5]
all_even_numbers = numbers.find_all { |number| number.even? }
reject
:遍歷數組并根據指定條件過濾元素,返回一個新的數組,與filter
相反。numbers = [1, 2, 3, 4, 5]
odd_numbers = numbers.reject { |number| number.even? }
compact
:移除數組中的空值(如nil
或空字符串)。array_with_nils = [1, 2, nil, 4, "", 5]
compact_array = array_with_nils.compact
delete
:移除數組中的指定元素。numbers = [1, 2, 3, 4, 5]
delete_number = numbers.delete(3)
這些方法可以幫助你更簡潔地編寫代碼,提高代碼的可讀性和可維護性。當然,Ruby還有很多其他數組方法,你可以根據需要選擇合適的方法。