使用iOS swift合并两个结构数组

Har*_*sha 0 arrays merge structure ios swift

如何根据结构(名称)中的键合并两个(第一个和第二个)结构数组。合并时,如果该元素中的任何值发生更改,我需要用第二个数组元素替换第一个数组的现有元素。

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'*/
Run Code Online (Sandbox Code Playgroud)

请告诉我简单的方法,谢谢。

Eru*_*aru 6

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 }
}
Run Code Online (Sandbox Code Playgroud)

[{name "Arun", dob "01-01-1994", address "Kadapa"},
{name "Balaji", dob "01-01-1994", address "Tirupati"},
{name "Prasanth", dob "01-01-1994", 地址 "Tirupati"},
{name "Harsha", dob "01-01-1994", address "Tirupati"}]