首页 > 解决方案 > 如何使用 map 函数快速从数组中获取替代索引数据

问题描述

struct Product {
    let name: String
    let weight: Double
}

let productsList = [Product(name: "AAA", weight: 1),
                    Product(name: "BBB", weight: 2),
                    Product(name: "CCC", weight: 3),
                    Product(name: "DD", weight: 4),
                    Product(name: "RR", weight: 5),
                    Product(name: "EEE", weight: 6),
                    Product(name: "FGT", weight: 7),
                    Product(name: "DSF", weight: 8),
                    Product(name: "VCVX", weight: 9),
                    Product(name: "GFDHT", weight: 10)]

print(productsList.map { $0.name })

我正在从上面的行中获取所有产品名称,但我只想使用 map 从奇数索引中获取名称。可能吗?

标签: swift

解决方案


这是执行此操作的一种方法:

print(
    productsList
        .enumerated()
        .filter { $0.offset % 2 == 1 }
        .map { $0.element.name }
)

enumerated方法将每个产品转换为一个 2 元组,其中包含产品及其在数组 ( offset) 中的索引。然后,您filter只留下具有奇数(或偶数)索引的产品。之后,您需要将 2 元组映射到产品名称。


推荐阅读