如何提取Swift中的对象数组?

如何提取Swift中的对象数组?,swift,Swift,我有json对象,如和在数组中解析 let objects = [Object]() 假想 let objects [Object(name:oscar, id: 11), Object(name:sanchez, id: 12),Object(name:emily, id: 15),Object(name:clarck, id: 31) ... ] 我如何将下面的字符串数组也使用这个名称来表示对象所属的名称?(因此我可以轻松地使用对象) 谢谢我想这就是你想要的 let stringPro

我有json对象,如和在数组中解析

let objects = [Object]()

假想

let objects [Object(name:oscar, id: 11), Object(name:sanchez, id: 12),Object(name:emily, id: 15),Object(name:clarck, id: 31) ... ]
我如何将下面的字符串数组也使用这个名称来表示对象所属的名称?(因此我可以轻松地使用对象)


谢谢

我想这就是你想要的

let stringPropertyArray: [String] = objects.map {$0.name}
我将如何找到该对象?如果你有“emily”我想知道item.id emily属于哪一个

也许你想要像这样的东西

if let ob = objects.first {$0.name == "emily"} {
    print(ob.id)
}

但是,如果您的目标是快速搜索,那么最好让字典按您要搜索的值键入。

有两种方法可以使用:

  • 通过循环(传统方法)
  • 利用高阶函数
  • 如果您的name属性是可选的,并且对于某些对象,name属性值为nil,那么我们应该使用compactMap高阶函数,以避免列表中的nil对象

    让listName=objects.compactMap{$0.name}

    要查找任何特定对象,我们可以使用如下过滤器:

    让object=objects.filter{ $0.name==“sanchez”}。首先

    //或

    让object=objects.first{object->Bool进入 object.name==“emily”}


    第一部分没问题,谢谢,但是我怎么找到这个对象呢?如果你有“emily”我想知道item.id emily属于哪一个?
    let stringPropertyArray: [String] = objects.map {$0.name}
    
    if let ob = objects.first {$0.name == "emily"} {
        print(ob.id)
    }
    
    var listName: [String] = []
    for item in objects {
        listName.append(item.name)
    }
    
    let listName = objects.map{ $0.name }