从数组获取具有max属性的元素

雾雾

如果我有一个结构...

struct MyStruct {
    let number: Int
}

我有很多...

var array = [MyStruct]()
// populate array with MyStructs

然后,我可以这样做以获得最大number...

var maxNumber = 0

for tempStruct in array where tempStruct.number > maxNumber {
    maxNumber = tempStruct.number
}

但是,我不能使用...

let maxStruct = array.maxElement()

因为MyStruct不可比。我可以使它具有可比性,但是然后我可能还想通过比较它来获得一个日期戳,因此使它可比性不是理想的选择。

我还有另一种方式可以做到这一点吗?

....

我只是想,我也可以这样做...

let maxStruct = array.sort{$0.number > $1.number}.first()

但这将花费更多时间。我不确定它使用哪种排序方法,但是可能会出现,n log(n)而我的初始方法将是n

马丁·R

与一样sort()/sortInPlace(),也有以下两种变体min/maxElement():第一种要求序列元素具有可比性:

extension SequenceType where Generator.Element : Comparable {

    public func minElement() -> Self.Generator.Element?
    public func maxElement() -> Self.Generator.Element?
}

第二个没有这种限制,而是将比较器作为参数:

extension SequenceType {

    public func minElement(@noescape isOrderedBefore: (Self.Generator.Element, Self.Generator.Element) throws -> Bool) rethrows -> Self.Generator.Element?
    public func maxElement(@noescape isOrderedBefore: (Self.Generator.Element, Self.Generator.Element) throws -> Bool) rethrows -> Self.Generator.Element?
}

您可以使用maxElement()比较器功能:

// Swift 2:
let maxStruct = array.maxElement { $0.number < $1.number }
// Swift 3:
let maxStruct = array.max { $0.number < $1.number }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery从具有属性的元素获取ID

来自分类Dev

获取具有min属性的元素

来自分类Dev

获取具有特定属性最大值的哈希数组中元素的索引

来自分类Dev

通过具有类似数组的属性的属性选择dom元素

来自分类Dev

通过具有类似数组的属性的属性选择dom元素

来自分类Dev

获取具有属性的etree元素,或包含具有属性的子元素

来自分类Dev

Swift-检查数组是否包含具有属性的元素

来自分类Dev

获取具有“名称”属性的XML元素的标签名称

来自分类Dev

获取具有slot属性vue的元素的列表

来自分类Dev

groovy / xml-获取具有较大属性值的元素

来自分类Dev

获取具有最高属性的列表中的n个元素

来自分类Dev

XPath:获取具有位置和属性的元素

来自分类Dev

在XmlDocument中获取具有特定属性值的xml元素

来自分类Dev

获取具有特定值的数组元素的索引

来自分类Dev

获取具有混合类型的数组的每个索引的元素类型

来自分类Dev

PySpark-获取具有相同值的数组的元素数

来自分类Dev

获取它在数组中具有值的元素数

来自分类Dev

在排序之前获取具有重复值的数组元素的索引

来自分类Dev

获取具有最高前缀值的数组元素

来自分类Dev

获取具有特定属性的数组对象axios

来自分类Dev

获取具有特定属性的项目的数组长度

来自分类Dev

如何从数组中获取具有最大属性的对象?

来自分类Dev

获取所有属性等于数组元素之一的文档

来自分类Dev

获取以0结尾的数组中的max元素

来自分类Dev

当元素具有属性runat =“ server”时,如何获取元素的Request.Form [“ elementName”]?

来自分类Dev

当元素具有属性runat =“ server”时,如何获取元素的Request.Form [“ elementName”]?

来自分类Dev

Xpath 获取位于具有特定属性的两个元素之间的元素

来自分类Dev

BeautifulSoup:获取具有特定属性的元素,而与属性值无关

来自分类Dev

搜索MongoDB对象数组,其中属性对于多个数组元素具有相同的值

Related 相关文章

  1. 1

    jQuery从具有属性的元素获取ID

  2. 2

    获取具有min属性的元素

  3. 3

    获取具有特定属性最大值的哈希数组中元素的索引

  4. 4

    通过具有类似数组的属性的属性选择dom元素

  5. 5

    通过具有类似数组的属性的属性选择dom元素

  6. 6

    获取具有属性的etree元素,或包含具有属性的子元素

  7. 7

    Swift-检查数组是否包含具有属性的元素

  8. 8

    获取具有“名称”属性的XML元素的标签名称

  9. 9

    获取具有slot属性vue的元素的列表

  10. 10

    groovy / xml-获取具有较大属性值的元素

  11. 11

    获取具有最高属性的列表中的n个元素

  12. 12

    XPath:获取具有位置和属性的元素

  13. 13

    在XmlDocument中获取具有特定属性值的xml元素

  14. 14

    获取具有特定值的数组元素的索引

  15. 15

    获取具有混合类型的数组的每个索引的元素类型

  16. 16

    PySpark-获取具有相同值的数组的元素数

  17. 17

    获取它在数组中具有值的元素数

  18. 18

    在排序之前获取具有重复值的数组元素的索引

  19. 19

    获取具有最高前缀值的数组元素

  20. 20

    获取具有特定属性的数组对象axios

  21. 21

    获取具有特定属性的项目的数组长度

  22. 22

    如何从数组中获取具有最大属性的对象?

  23. 23

    获取所有属性等于数组元素之一的文档

  24. 24

    获取以0结尾的数组中的max元素

  25. 25

    当元素具有属性runat =“ server”时,如何获取元素的Request.Form [“ elementName”]?

  26. 26

    当元素具有属性runat =“ server”时,如何获取元素的Request.Form [“ elementName”]?

  27. 27

    Xpath 获取位于具有特定属性的两个元素之间的元素

  28. 28

    BeautifulSoup:获取具有特定属性的元素,而与属性值无关

  29. 29

    搜索MongoDB对象数组,其中属性对于多个数组元素具有相同的值

热门标签

归档