我想比较两个数组的元素,并检查它们是否相等.我已经尝试了各种解决方案但没有真正有效.
我试过如何比较两个对象数组的解决方案 ?
这是我的目标:
struct AccountBalance: Decodable {
let balance: Double
let currency: String
init(balance: Double, currency: String ) {
self.currency = currency
self.balance = balance
}
enum CodingKeys: String, CodingKey {
case currency = "Currency"
case balance = "Balance"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我试过的链接中的代码:
let result = zip(accountBalance, getsSaved).enumerate().filter() {
$1.0 == $1.1
}.map{$0.0}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Closure tuple parameter '(offset: Int, element: (AccountBalance, AccountBalance))' does not support destructuring with implicit parameters
Run Code Online (Sandbox Code Playgroud)
vad*_*ian 10
Array
提供了一个elementsEqual
能够比较两个数组而不明确符合的函数Equatable
:
let result = accountBalance.elementsEqual(getsSaved) {
$0.balance == $1.balance && $0.currency == $1.currency
}
Run Code Online (Sandbox Code Playgroud)
编辑:
如果要获得相等结果而不管数组中对象的顺序如何,那么您只需为每个数组添加排序.
let result = accountBalance.sorted { $0.balance < $1.balance }.elementsEqual(getsSaved.sorted { $0.balance < $1.balance }) {
$0.balance == $1.balance && $0.currency == $1.currency
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4978 次 |
最近记录: |