在Ruby中,有多種方法可以高效地遍歷數(shù)組。以下是一些常用的方法:
array = [1, 2, 3, 4, 5]
array.each do |element|
# 對(duì)每個(gè)元素執(zhí)行操作
puts element
end
each_with_index
遍歷數(shù)組,同時(shí)獲取元素及其索引:array = [1, 2, 3, 4, 5]
array.each_with_index do |element, index|
# 對(duì)每個(gè)元素及其索引執(zhí)行操作
puts "Element at index #{index}: #{element}"
end
map
遍歷數(shù)組,并對(duì)每個(gè)元素執(zhí)行操作,返回一個(gè)新的數(shù)組:array = [1, 2, 3, 4, 5]
new_array = array.map do |element|
# 對(duì)每個(gè)元素執(zhí)行操作并返回新值
element * 2
end
puts new_array.inspect
select
遍歷數(shù)組,根據(jù)條件篩選元素,返回一個(gè)新的數(shù)組:array = [1, 2, 3, 4, 5]
even_numbers = array.select do |element|
# 根據(jù)條件篩選元素
element.even?
end
puts even_numbers.inspect
reduce
遍歷數(shù)組,將元素累積為一個(gè)值:array = [1, 2, 3, 4, 5]
sum = array.reduce(0) do |accumulator, element|
# 將元素累積為一個(gè)值
accumulator + element
end
puts sum
each_cons
遍歷數(shù)組中相鄰的元素對(duì):array = [1, 2, 3, 4, 5]
array.each_cons(2) do |pair|
# 對(duì)相鄰的元素對(duì)執(zhí)行操作
puts "Pair: #{pair.inspect}"
end
這些方法都可以高效地遍歷數(shù)組并根據(jù)需要對(duì)元素執(zhí)行操作。你可以根據(jù)具體需求選擇合適的方法。