繁体   English   中英

将对象数组转换为字符串数组

[英]Convert Object array into String array

如何将该对象数组转换为字符串数组? 我正在读取Firebase集合中的记录。

    firebaseDB.collection("message").document(key).collection("messages").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        }
        else {
            self.driverArr.removeAll()
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")
                let msgdata = document.data() as! [String:Any]
                var msgObj = Message()
                if let name = msgdata["name"] as? String {
                    msgObj.name = name
                }
                self.driverArr.append(msgObj)
            }
            if self.driverArr.count < 1 {
                print("No Drivers")
            }
            else{
                print("*** Driver Names array ***")
                print(self.driverArr)
            }
        }
    }

该数组的当前输出为:

[MainApp.Message(name:Optional(“ Oliver”),userId:Optional(“”),msg:Optional(“”),creatAt:Optional(0),纬度:Optional(“”),经度:Optional(“ “)),MainApp.Message(名称:Optional(” Bluesona“),userId:Optional(”“),msg:Optional(”“),creatAt:Optional(0),纬度:Optional(”“),经度: Optional(“”)),MainApp.Message(名称:Optional(“ Oliver”),userId:Optional(“”),msg:Optional(“”),creatAt:Optional(0),纬度:Optional(“”) ,经度:Optional(“”))]]

我希望简单地输出一个包含名称为["Oliver", "Bluesona"...]的字符串数组的数组

您可以使用compactMap获取数组中的所有有效名称。

print( driverArr.compactMap({$0.name}) )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM