gpt4 book ai didi

swift - 基于共享值合并两个字典数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:31:36 33 4
gpt4 key购买 nike

假设我有两个字典数组:

[["id":"1","color":"orange"],["id":"2","color":"red"]]

[["id":"1","fruit":"pumpkin"],["id":"2","fruit":"strawberry"]]

我如何根据“id”合并这些,以便我得到

[["id":"1","color":"orange","fruit":"pumpkin"],["id":"2","color":"red","fruit":"strawberry"]]

我们知道这两个数组的长度是一样的。我们不知道这两个数组的顺序是否相同。

在 Swift 中合并每个字典的最佳方式是什么?

最佳答案

Xcode 9 中的 Swift 标准库引入了 merge

代码过滤array2中具有相同id的对应字典,将键值合并到array1中:

var array1 = [["id":"1","color":"orange"], ["id":"2","color":"red"]]
var array2 = [["id":"1","fruit":"pumpkin"], ["id":"2","fruit":"strawberry"]]

for (index, item) in array1.enumerated() {
if let filtered = array2.first(where: {$0["id"]! == item["id"]! }) {
array1[index].merge(filtered) { (current, _) in current }
}
}

print(array1)

我不知道 merge 是否也适用于 Swift 3.2

关于swift - 基于共享值合并两个字典数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570988/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com