Ruby数组提供了许多高效操作数据的方法,这里列举一些常用的方法:
Array#each
:遍历数组中的每个元素并执行指定操作。numbers = [1, 2, 3, 4, 5]
numbers.each { |number| puts number }
Array#map
:对数组中的每个元素执行指定操作,并返回一个新数组。numbers = [1, 2, 3, 4, 5]
squares = numbers.map { |number| number * number }
Array#filter
:根据指定条件过滤数组中的元素,并返回一个新数组。numbers = [1, 2, 3, 4, 5]
even_numbers = numbers.filter { |number| number.even? }
Array#select
:与filter
类似,但返回满足条件的第一个元素。numbers = [1, 2, 3, 4, 5]
even_numbers = numbers.select { |number| number.even? }
Array#reduce
:对数组中的元素执行累积操作,最终返回一个值。numbers = [1, 2, 3, 4, 5]
sum = numbers.reduce(0) { |total, number| total + number }
Array#inject
:与reduce
类似,但允许传递一个初始值。numbers = [1, 2, 3, 4, 5]
sum = numbers.inject(0) { |total, number| total + number }
Array#include?
:检查数组中是否包含指定元素。numbers = [1, 2, 3, 4, 5]
puts numbers.include?(3) # 输出 true
Array#first
和 Array#last
:分别返回数组中的第一个和最后一个元素。numbers = [1, 2, 3, 4, 5]
puts numbers.first # 输出 1
puts numbers.last # 输出 5
Array#length
或 Array#size
:返回数组中的元素个数。numbers = [1, 2, 3, 4, 5]
puts numbers.length # 输出 5
Array#unshift
和 Array#push
:分别在数组的开头和结尾添加元素。numbers = [1, 2, 3, 4, 5]
numbers.unshift(0) # 在数组开头添加 0,结果为 [0, 1, 2, 3, 4, 5]
numbers.push(6) # 在数组结尾添加 6,结果为 [0, 1, 2, 3, 4, 5, 6]
这些方法只是Ruby数组方法中的一部分,Ruby还提供了许多其他方法来高效地操作数组。在使用这些方法时,可以根据实际需求选择合适的方法,以提高代码的可读性和执行效率。