首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift -来自2个过滤数组的字典

Swift -来自2个过滤数组的字典
EN

Stack Overflow用户
提问于 2017-07-17 22:15:12
回答 1查看 84关注 0票数 1
代码语言:javascript
复制
idsArr = [ ["id": "12345"], ["id": "27891"],["id": "98654"] ]
idsNameIntvalueArr = [["id": "22913", "name" : "Peter Parker", "value": 15], ["id": "12345", "name" : "Donald Duck", "value": 6],  ["id": "98654", "name" : "Mickey Mouse", "value": 9], ["id": "112233", "name" : "Lion King", "value": 9]]

我是Swift的新手,请给我建议,通过id比较这两个数组的最佳实践是什么,如果id匹配,如何获取包含字典的数组,结果如下:

代码语言:javascript
复制
resultArr = [["Donald Duck": 6],["Mickey Mouse": 9]] 

或者,如果可能的话,最好是一本字典:

代码语言:javascript
复制
resultdict = ["Donald Duck": 6, "Mickey Mouse": 9]

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-17 22:59:14

Swift 3.x

代码语言:javascript
复制
let idsArr = [ ["id": "12345"], ["id": "27891"],["id": "98654"] ]
let idsNameIntvalueArr = [["id": "22913", "name" : "Peter Parker", "value": 15], ["id": "12345", "name" : "Donald Duck", "value": 6],  ["id": "98654", "name" : "Mickey Mouse", "value": 9], ["id": "112233", "name" : "Lion King", "value": 9]]

var result = [String:Int]()

idsNameIntvalueArr.forEach({ name in
  idsArr.forEach({
    if name["id"] as? String == $0["id"] { result[name["name"] as! String ] = name["value"] as? Int }
  })
})
print(result)

将返回:

代码语言:javascript
复制
["Mickey Mouse": 9, "Donald Duck": 6]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45146631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档