我在这样的数组中有数组;
var trucks: [boxes]
var boxes: [items]
var items: [fruits]
我想在元素中找到“苹果”并将它们保存在卡车数组中。 (我将重新加载 collectionView 并显示新的过滤部分......等)
我试过:
let myArray = trucks.boxes
let searchArray = myArray.flatMap {
$0.items
.filter {$0.name == "apple"}
}
但我得到的是项目数组。
最佳答案
我不确定你的类/结构的结构是什么,但给出以下定义,结果将包含具有名称为“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" })
}
关于ios - Swift - 如何过滤多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57362528/