📜  如何在swift中从数组对象中的特定键获取值列表(1)

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

在Swift中,可以使用mapcompactMap函数来从数组对象中的特定键获取值列表。

map函数

map函数将一个数组中的每个元素都映射到一个新的值,并返回一个新的数组。在这种情况下,我们可以从每个对象中获取特定键的值。

下面是一个示例,从对象数组中获取每个对象的"key"键的值列表:

let objectArray = [
    ["key": "value1"],
    ["key": "value2"],
    ["key": "value3"]
]

let valueArray = objectArray.map { $0["key"] }
print(valueArray)
// 输出 ["value1", "value2", "value3"]

在这个示例中,我们使用map函数将objectArray数组中的每个对象都映射到它们的"key"键的值。最终结果是一个包含所有值的新数组。

compactMap函数

compactMap函数是map函数的扩展,其会将nil值过滤掉,并返回一个新的数组。在这种情况下,我们可以使用它来过滤掉那些没有特定键的对象。

下面是一个示例,仅从对象数组中获取包含"key"键的对象的值列表:

let objectArray = [
    ["key": "value1"],
    ["key2": "value2"],
    ["key": "value3"]
]

let valueArray = objectArray.compactMap { $0["key"] }
print(valueArray)
// 输出 ["value1", "value3"]

在这个示例中,我们使用compactMap函数从objectArray数组中仅获取包含"key"键的对象,并将它们的值映射到一个新的数组。最终结果是一个包含所有值的新数组,但是对象数组中不包含键为"key2"的对象,所以它不在新数组中。

以上是如何在Swift中从数组对象中的特定键获取值列表的介绍。这些函数是非常有用的,因为它们可以简化代码,并减少了在循环中手动获取值的需要。