如何在数组对象中找到一个项目?

问题描述 投票:0回答:1

我有一个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)
    }
}

有什么办法可以让它工作?

先谢谢你

arrays swift maps swiftui swift5
1个回答
1
投票

你可以简单地通过获取id匹配的第一个元素来实现。

let result = foodDetails.first(where: {$0.foodId == id})

 if let food = result {
        print(food.name ?? "") //if name is optional
        print(food.foodId)
        print(food.category)
    }

你得到的结果是,食品? 有这个id的可选结构。

© www.soinside.com 2019 - 2024. All rights reserved.