ios - Swift - 如何过滤多维数组
问题描述
我在这样的数组中有数组;
var trucks: [boxes]
var boxes: [items]
var items: [fruits]
我想在物品中找到“苹果”并将它们保存在卡车阵列中。(我将重新加载 collectionView 并显示新的过滤部分...等)
我试过:
let myArray = trucks.boxes
let searchArray = myArray.flatMap {
$0.items
.filter {$0.name == "apple"}
}
但我得到的是 items 数组。
解决方案
我不确定您的类/结构的结构是什么,但是根据以下定义,结果将包含具有名称为“apple”的项目的框
struct Truck {
let boxes: [Box]
}
struct Box {
let items: [Item]
}
struct Item {
let name: String
}
let truck = Truck(boxes: [
Box(items: [Item(name: "Banana")]),
Box(items: [Item(name: "Apple"), Item(name: "Pear")])
])
let searchArray = truck.boxes
.filter { box in
box.items.contains(where: { item in item.name.lowercased() == "apple" })
}
推荐阅读
- python-3.x - 仅当我们在变量中有值时才在字典中创建对
- here-maps-rest - 将三词地址转换为地理坐标
- postgresql - 在 Bitnami Keycloak Helm 图表中指定 sslmode
- python - 随机数生成器不工作 - discord.py 3.xx
- wordpress - 如何在 woocommerce 中添加新功能以输入前面带有数量字段的文本字段?
- c++ - 编译器对 std::move 和删除的复制构造函数的行为不同
- javascript - useRef 反应钩子提取列表元素
- python - 传递解构的 kwargs 不工作 python
- sql - 使用 VBA 在 Excel 单元格中运行 SQL 语句
- android - 如何在 Flutter 中隐藏 Android 的底部操作栏?