微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在数组中找到一个对象?

如何解决在数组中找到一个对象?

FWIW,如果您不想使用自定义功能或扩展,您可以:

let array = [ .... ]
if let found = find(array.map({ $0.name }), "Foo") {
    let obj = array[found]
}

这首先生成name数组,然后find从中生成

如果你有巨大的数组,你可能想要这样做:

if let found = find(lazy(array).map({ $0.name }), "Foo") {
    let obj = array[found]
}

或者可能:

if let found = find(lazy(array).map({ $0.name == "Foo" }), true) {
    let obj = array[found]
}

解决方法

Swift 在 Underscore.js
中有类似_.findWhere的东西吗?

我有一个类型的结构数组,T并想检查数组是否包含其name属性等于的结构对象Foo

尝试使用find()filter()但它们仅适用于原始类型,例如Stringor
Int。抛出关于不符合Equitable协议或类似的错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。