数组 – 在没有for循环的情况下在swift中从字典转换为数组

数组 – 在没有for循环的情况下在swift中从字典转换为数组,第1张

概述我有一些从服务器返回的数据,如下所示: let returnedFromServer = ["title" : ["abc", "def", "ghi"], "time" : ["1234", "5678", "0123"], "content":["qwerty", "asdfg", "zxcvb" 我有一些从服务器返回的数据,如下所示:

let returnedFromServer = ["Title" : ["abc","def","ghi"],"time"  : ["1234","5678","0123"],"content":["qwerty","asdfg","zxcvb"]]

我想把它变成这样的东西:

let aftertransformation =[["Title" : "abc","time"  : "1234","content": "qwerty"],["Title" : "def","time"  : "5678","content": "asdfg"],["Title" : "ghi","time"  : "0123","content": "zxcvb"]]

我目前的实施如下:

var outputArray = [[String : AnyObject]]()for i in 0..<(returnedFromServer["time"] as [String]).count {        var singleDict = [String: AnyObject]()        for attribute in returnedFromServer {            singleDict[attribute] = returnedFromServer[attribute]?[i]        }        outputArray.append(singleDict)}

这工作正常,但我认为这不是一个非常优雅的解决方案.鉴于Swift有一些简洁的功能,如reduce,filter和map,我想知道如果没有明确地使用循环我是否可以做同样的工作.

谢谢你的帮助!

解决方法 使用想法和字典扩展

extension Dictionary {    init(_ pairs: [Element]) {        self.init()        for (k,v) in pairs {            self[k] = v        }    }    func map<OutKey: Hashable,OutValue>(transform: Element -> (OutKey,OutValue)) -> [OutKey: OutValue] {        return Dictionary<OutKey,OutValue>(Swift.map(self,transform))    }}

> What’s the cleanest way of applying map() to a dictionary in Swift?,

你可以实现这个目标

let count = returnedFromServer["time"]!.countlet outputArray = (0 ..< count).map {    IDx -> [String: AnyObject] in    return returnedFromServer.map {        (key,value) in        return (key,value[IDx])    }}
总结

以上是内存溢出为你收集整理的数组 – 在没有for循环的情况下在swift中从字典转换为数组全部内容,希望文章能够帮你解决数组 – 在没有for循环的情况下在swift中从字典转换为数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/998912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存