gpt4 book ai didi

arrays - 如何比较两个数组的元素

转载 作者:IT王子 更新时间:2023-10-29 05:48:19 25 4
gpt4 key购买 nike

我想比较两个数组的元素并检查它们是否相等。我已经尝试了各种解决方案,但没有任何效果。

我尝试了解决方案 How to compare two array of objects?

这是我的对象:

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"
}
}

这是我试过的链接中的代码:

let result = zip(accountBalance, getsSaved).enumerate().filter() {
$1.0 == $1.1
}.map{$0.0}

但是我得到这个错误:

Closure tuple parameter '(offset: Int, element: (AccountBalance, AccountBalance))' does not support destructuring with implicit parameters

最佳答案

Array 提供了一个函数 elementsEqual,它能够在不显式遵守 Equatable 的情况下比较两个数组:

let result = accountBalance.elementsEqual(getsSaved) {
$0.balance == $1.balance && $0.currency == $1.currency
}

编辑:

如果您想要相等结果而不考虑数组中对象的顺序,那么您只需对每个数组添加排序即可。

let result = accountBalance.sorted { $0.balance < $1.balance }.elementsEqual(getsSaved.sorted { $0.balance < $1.balance }) {
$0.balance == $1.balance && $0.currency == $1.currency
}

关于arrays - 如何比较两个数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48292275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com