如何在数组对象中查找项目
How to find an item in an object of array
我有一个 ID 列表。我还有一个对象,其中包含如下结构的数据数组。
[
foods(
foodId: 345,
category: 10,
tools: [10],
name: "food name 1"
),
foods(
foodId: 191,
category: 4,
tools: [2],
name: "food name 2"
),
]
在我的列表中我有列表 [345, 191]
我希望在提供 foodId
时有一种机制来访问对象的信息。
我让它与一个内循环和一个外循环一起工作。但我想知道是否有更简单的方法:
ForEach(foodDetails, id: \.self){ item in
ForEach(self.foods.datas){ ex in
if(ex.foodId == item){
Text(ex.name)
}
}
知道如何让它发挥作用吗?
提前致谢
您可以简单地获取第一个 ID 匹配的元素
let result = foodDetails.first(where: {[=10=].foodId == id})
if let food = result {
print(food.name ?? "") //if name is optional
print(food.foodId)
print(food.category)
}
你得到的结果是食物吗?具有此 id
的可选结构
我有一个 ID 列表。我还有一个对象,其中包含如下结构的数据数组。
[
foods(
foodId: 345,
category: 10,
tools: [10],
name: "food name 1"
),
foods(
foodId: 191,
category: 4,
tools: [2],
name: "food name 2"
),
]
在我的列表中我有列表 [345, 191]
我希望在提供 foodId
时有一种机制来访问对象的信息。
我让它与一个内循环和一个外循环一起工作。但我想知道是否有更简单的方法:
ForEach(foodDetails, id: \.self){ item in
ForEach(self.foods.datas){ ex in
if(ex.foodId == item){
Text(ex.name)
}
}
知道如何让它发挥作用吗?
提前致谢
您可以简单地获取第一个 ID 匹配的元素
let result = foodDetails.first(where: {[=10=].foodId == id})
if let food = result {
print(food.name ?? "") //if name is optional
print(food.foodId)
print(food.category)
}
你得到的结果是食物吗?具有此 id
的可选结构