迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

遍历 Ruby 数组

作者:迹忆客 最近更新:2023/03/20 浏览次数:

Ruby 中的数组类包含 Enumerable mixin,因此它有几个横向方法。在本教程中,我们将研究这些可枚举的方法和其他在 Ruby 中遍历数组的方法。

使用 each 方法遍历 Ruby 数组

这是 Ruby 中最常用的迭代器。

示例代码:

fruits = ['Orange', 'Apple', 'Banana']

fruits.each do |fruit|
  puts fruit
end

输出:

Orange
Apple
Banana

使用 for 循环遍历 Ruby 数组

此方法可能会产生不良副作用,因此不推荐使用。

示例代码:

fruits = ['Orange', 'Apple', 'Banana']

for fruit in fruits
  puts fruit
end

输出:

Orange
Apple
Banana

如果在上面的示例中早先定义了一个 fruit 变量,for 循环将用 fruits 数组的最后一个元素覆盖它。这是一个范围界定问题,其行为如下所示。

示例代码:

fruit = 'Mango'
fruits = ['Orange', 'Apple', 'Banana']

for fruit in fruits
  puts fruit
end

puts fruit

输出:

Orange
Apple
Banana
Banana

使用 reverse_each 方法遍历 Ruby 数组

顾名思义,这与 each 方法类似,但顺序相反。

示例代码:

fruits = ['Orange', 'Apple', 'Banana']

fruits.reverse_each do |fruit|
  puts fruit
end

输出:

Banana
Apple
Orange

使用 each_with_index 方法遍历 Ruby 数组

此方法在你需要获取数组的每个元素和索引的情况下很有用。

示例代码:

fruits = ['Orange', 'Apple', 'Banana']
fruits.each_with_index do |fruit|
  puts "#{index}. #{fruit}"
end

输出:

0. Orange
1. Apple
2. Banana

尽管上面的示例演示了遍历数组的最简单方法,但是当你需要遍历数组并对其中的每个元素执行一些操作时,这些方法通常会派上用场 - 例如,遍历电子邮件地址列表和向他们每个人发送消息。

我们将在本教程中提到的其余方法与上面提到的方法有些不同,它们将一个数组转换为另一个数组。

使用 map 方法遍历 Ruby 数组

如果你想修改数组的每个元素并将它们作为新数组,这很有用。

示例代码:

numbers = [2, 4, 6]

doubles = numbers.map do |n|
  n * 2
end

puts doubles

输出:

[4, 8, 12]

请注意,还有一个 collect 方法,map 的别名,它们的行为方式相同。

使用 select 方法遍历 Ruby 数组

顾名思义,select 方法允许你仅选择数组中满足特定逻辑条件的特定元素。它还会生成一个新数组。

示例代码:

numbers = [2, 3, 4, 5, 6, 7, 8, 9]

perfect_squares = numbers.select do |n|
  Math.sqrt(n) % 1 == 0
end

puts perfect_squares

输出:

[4, 9]

请注意,还有一个 find_all 方法,它是 select 的别名,它们的行为方式相同。

使用 reject 方法遍历 Ruby 数组

reject 方法与 select 方法相反,当你需要拒绝数组的某些特定元素并将其余元素作为新数组返回时,它很有用。

示例代码:

numbers = [-2, -1, 0, 1, 2, 3]

positive_integers = numbers.reject do |n|
  n < 1
end

puts positive_integers

输出:

[1, 2, 3]

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

用 Ruby 解析 XML

发布时间:2023/03/21 浏览次数:112 分类:编程语言

本文展示了如何在 Ruby 中使用 gem nokogiri 解析 XML 文件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便