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

标签 ios arrays swift merge structure

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

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/

相关文章:

ios - Xcode - 在 XCode 5 上使用多个 SDK

ios - WatchKit:与包含的 iOS 应用程序直接通信

java - 如何扫描数组以获取某些信息

iOS 11 使用 ATS 从 HTTP 加载图像

ios - 如何获取 TextField 输入以及为什么在我滚动时重复输入?

ios - SpriteKit 中的碰撞

ios - InsertSections 函数 Swift

ios - MonoTouch.Dialog - 如何从元素 UI 中获取值

ios - 如何在Swift中正确使用NSRegular Expression和过滤字符串数组

php - 从 SQL SELECT JOIN (PHP) 构建关联数组