📜  红宝石 |可枚举的 map()函数(1)

📅  最后修改于: 2023-12-03 15:11:35.441000             🧑  作者: Mango

红宝石 | 可枚举的 map()函数

简介

map() 方法是 Ruby 中用于数组和哈希表的数据结构进行遍历的一种方法,通过对每个元素执行给定的块来创建一个“映射”,并将它们组成一个新的数组或哈希表。

在 Ruby 中,数组和哈希表都是可枚举的,因此都可以使用 map() 方法。当应用于数组时,map() 方法返回包含块中每个元素的结果的新数组。当应用于哈希表时,map() 方法返回一个新的哈希表。

语法

map() 方法的基本语法如下:

array.map { |item| block }
hash.map { |key, value| block }

其中,arrayhash 表示要遍历的数组或哈希表。item 表示数组或哈希表中的每个元素,keyvalue 分别表示哈希表中的键和值。block 是应用于每个元素的块,可以是一个基本的计算、方法调用或任何 Ruby 代码。

示例
数组示例

以下示例演示了如何在 Ruby 中使用 map() 方法来操作数组:

fruits = ["apple", "banana", "cherry"]
capital_fruits = fruits.map { |fruit| fruit.capitalize }
puts capital_fruits # => ["Apple", "Banana", "Cherry"]

在这个示例中,我们首先定义了一个包含三种水果的数组 fruits。然后,我们使用 map() 方法和一个块,将数组中的每个元素转换为其首字母大写的形式,并将结果存储在变量 capital_fruits 中。最后,我们使用 puts 方法打印结果。

哈希表示例

以下示例演示了如何在 Ruby 中使用 map() 方法来操作哈希表:

ages = {"John" => 27, "Mary" => 33, "Bob" => 22}
ages_in_months = ages.map { |name, age| [name, age * 12] }.to_h
puts ages_in_months # => {"John"=>324, "Mary"=>396, "Bob"=>264}

在这个示例中,我们首先定义了一个包含三个人名和年龄的哈希表 ages。然后,我们使用 map() 方法和一个块,将哈希表中的每个元素转换为一个包含人名和年龄的数组,并将年龄乘以 12(即转换为月份)。最后,我们将这些新的数组组成一个新的哈希表 ages_in_months,并使用 puts 方法打印结果。

结语

map() 方法是 Ruby 中一个非常有用的方法,可以快速、简便地遍历数组和哈希表,并对每个元素应用一个相同的操作。无论是在数据处理还是 Web 开发中,map() 方法都是一个不可或缺的工具。