Ruby 數組方法提供了很多內置方法來操作和變換數組,這些方法使得 Ruby 數組非常靈活。以下是一些方法,它們可以增強 Ruby 數組的靈活性:
map
方法:這個方法會對數組中的每個元素執行一個代碼塊,并將結果收集到一個新的數組中。這使得我們可以在不修改原始數組的情況下對數組中的每個元素進行處理。numbers = [1, 2, 3, 4, 5]
squares = numbers.map { |number| number * number }
puts squares.inspect # 輸出 [1, 4, 9, 16, 25]
select
方法:這個方法會遍歷數組中的每個元素,并返回一個新的數組,其中包含滿足給定條件的元素。這使得我們可以輕松地根據條件過濾數組中的元素。numbers = [1, 2, 3, 4, 5]
even_numbers = numbers.select { |number| number.even? }
puts even_numbers.inspect # 輸出 [2, 4]
reject
方法:這個方法類似于 select
,但它會返回一個新的數組,其中包含不滿足給定條件的元素。這使得我們可以輕松地根據條件過濾數組中的元素。numbers = [1, 2, 3, 4, 5]
odd_numbers = numbers.reject { |number| number.even? }
puts odd_numbers.inspect # 輸出 [1, 3, 5]
reduce
方法:這個方法會對數組中的元素執行一個累積操作,從左到右,將結果減少為單個值。這使得我們可以使用函數式編程技巧來處理數組。numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce(0) { |total, number| total + number }
puts sum.inspect # 輸出 15
inject
方法:這是 reduce
方法的另一種寫法,它允許我們為累積操作提供一個初始值。numbers = [1, 2, 3, 4, 5]
product = numbers.inject(1) { |total, number| total * number }
puts product.inspect # 輸出 120
each_with_index
方法:這個方法會遍歷數組中的每個元素及其索引,并執行一個代碼塊。這使得我們可以在處理數組時同時訪問元素和它們的索引。words = ['apple', 'banana', 'cherry']
words.each_with_index do |word, index|
puts "Index #{index}: #{word}"
end
這些方法只是 Ruby 數組方法中的一部分,但它們已經足以增強數組的靈活性。通過組合這些方法,我們可以輕松地實現各種數組操作和變換。