如何根据结构(名称)中的键合并两个(第一个和第二个)结构数组。合并时,我需要用第二个数组元素替换第一个数组的现有元素,如果该元素中的任何值发生变化的话。
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'*/
请告诉我简单的方法,谢谢。
最佳答案
import Foundation
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"))
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"))
first = second + first.filter { element in
return !second.contains { $0.name == element.name }
}
[{name "Arun", dob "01-01-1994", address "Kadapa"},
{name "Balaji", dob "01-01-1994", address "Tirupati"},
{name "Prasanth", dob "01-01-1994", address "Tirupati"},
{name "Harsha", dob "01-01-1994", address "Tirupati"}]
关于ios - 使用 iOS swift 合并两个结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925370/