【发布时间】:2018-06-19 09:50:39
【问题描述】:
如何根据结构(名称)中的键合并两个(第一个和第二个)结构数组。合并时,我需要用第二个数组元素替换第一个数组的现有元素,如果该元素中有任何值发生变化。
struct Example: Codable {
var name: String
var dob: String
var address: String
}
var first: [Example] = []
var second: [Example] = []
first.append(Example(name: "Arun", dob: "01-01-1994", address: "Tirupati"))
first.append(Example(name: "Balaji", dob: "01-01-1994", address: "Tirupati"))
first.append(Example(name: "Prasanth", dob: "01-01-1994", address: "Tirupati"))
first.append(Example(name: "Satish", dob: "01-01-1994", address: "Tirupati"))
second.append(Example(name: "Arun", dob: "01-01-1994", address: "Kadapa"))
second.append(Example(name: "Balaji", dob: "01-01-1994", address: "Tirupati"))
second.append(Example(name: "Prasanth", dob: "01-01-1994", address: "Tirupati"))
second.append(Example(name: "Harsha", dob: "01-01-1994", address: "Tirupati"))
/* let merged: [Example] = merge(first, second, with: name)
'merged' must contain four elements Arun, Balaji, Prasanth, Satish, Harsha,
but Arun details are from 'second', because 'address' changed in second. So, I need element from 'second'*/
请告诉我简单的方法,谢谢。
【问题讨论】:
-
是的,但连接与合并不同。连接可能有重复。
-
顺序重要吗?否则可能是
(NS)Set和Equatable或类似的东西,还是NSOrderedSet? stackoverflow.com/a/44228470/1801544(在Equatable之后?) -
是否保证
second包含first的所有元素?或者first中并非所有元素都存在于second中?对于您问题中的示例,merged应该只是second。 -
@DávidPásztor 抱歉,我一定是误会了。不过,这应该很容易研究。
标签: ios arrays swift merge structure